我有一个像这样的数组结构:
Array
(
[0] => Array
(
[term_id] => 22
[name] => Aaa Aa
[slug] => aaa-aa
[term_group] => 0
[term_taxonomy_id] => 22
[taxonomy] => category
[description] =>
[parent] => 13
[count] => 0
[cat_ID] => 22
[category_count] => 0
[category_description] =>
[cat_name] => Aaa Aa
[category_nicename] => aaa-aa
[category_parent] => 13
)
[1] => Array
(
[term_id] => 11
[name] => adasdasda
[slug] => adasdasda
[term_group] => 0
[term_taxonomy_id] => 11
[taxonomy] => category
[description] => asdsdad
[parent] => 1
[count] => 0
[cat_ID] => 11
[category_count] => 0
[category_description] => asdsdad
[cat_name] => adasdasda
[category_nicename] => adasdasda
[category_parent] => 1
)
)
我想知道如何轻松地循环遍历数据以输出…
例如,我想显示所有的名称、描述和标记。
我不知道如何显示它们…
这就是我所拥有的,它可以工作,但是它抛出了一个无效参数。
for ($i = 0; $i <= count($data); $i++) {
foreach($data[$i] as $key => $value){
echo "KEY: ".$key."<br />n VALUE: ".$value."<br />n";
}
}
不需要使用for
循环,foreach
就足够了。这样你就不必处理超出边界(未设置索引)的警告。
$array = array(); // <- your data here
foreach ($array as $arr) {
echo 'Name: ', $arr['name'], '<br />',
'Description: ', $arr['description'], '<br />',
'Slug: ', $arr['slug'], '<br />';
}
您得到警告,因为您正在访问$data
中不存在的元素。for
条件中的边界检查过高,count
将返回2,但$data[2]
未设置,因此不能在foreach
内使用。
代替do (Demo):
for ($i = 0; $i < count($data); $i++) { # $i < count, not $i <= count
foreach($data[$i] as $key => $value){
echo "KEY: ".$key."<br />n VALUE: ".$value."<br />n";
}
}
当然,使用外部foreach
也更容易:
foreach($data as $oneData)
{
foreach($oneData as $key => $value)
{
echo "KEY: $key<br />n VALUE: $value<br />n";
}
}
这基本上是一样的,你不需要关心计数器变量。
下一件事是,您需要决定要显示哪些数据。您可以选择性地选择它们,而不是显示所有项:
$displayKeys = array('name', 'description', 'slug');
foreach($data as $oneData)
{
foreach($displayKeys as $key)
{
$value = $oneData[$key];
echo "KEY: $key<br />n VALUE: $value<br />n";
}
}
那么你可能想要标记输出:
$displayKeys = array('name' => 'Name', 'description' => 'Description', 'slug' => 'Slug');
foreach($data as $oneData)
{
foreach($displayKeys as $key => $label)
{
$value = $oneData[$key];
echo "$label: $value<br />n";
}
}