在 PHP 中访问数组内的数组
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1544176/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Accessing Arrays inside Arrays In PHP
提问by streetparade
Hello I want to access inactive tags inside this array any idea?
你好我想访问这个数组中的非活动标签有什么想法吗?
stdClass::__set_state(
array
'languages' =>
array
76 =>
array
'id' => string '76' (length=2)
'tag' => string 'Deutsch' (length=7)
'targets' =>
array
81 =>
array
'id' => string '81' (length=2)
'tag' => string 'Deutschland' (length=11)
'tags' =>
array
7866 =>
array
'id' => string '7866' (length=4)
'tag' => string 'automobile' (length=10)
17800 =>
array
'id' => string '17800' (length=5)
'tag' => string 'seat leon' (length=9)
17801 =>
array
'id' => string '17801' (length=5)
'tag' => string 'seat leon cupra' (length=15)
'inactiveTags' =>
array
195 =>
array
'id' => string '195' (length=3)
'tag' => string 'auto' (length=4)
17804 =>
array
'id' => string '17804' (length=5)
'tag' => string 'coupès' (length=6)
17805 =>
array
'id' => string '17805' (length=5)
'tag' => string 'fahrdynamik' (length=11)
901 =>
array
'id' => string '901' (length=3)
'tag' => string 'fahrzeuge' (length=9)
17802 =>
array
'id' => string '17802' (length=5)
'tag' => string 'günstige neuwagen' (length=17)
1991 =>
array
'id' => string '1991' (length=4)
'tag' => string 'motorsport' (length=10)
2154 =>
array
'id' => string '2154' (length=4)
'tag' => string 'neuwagen' (length=8)
10660 =>
array
'id' => string '10660' (length=5)
'tag' => string 'seat' (length=4)
17803 =>
array
'id' => string '17803' (length=5)
'tag' => string 'sportliche ausstrahlung' (length=23)
74 =>
array
'id' => string '74' (length=2)
'tag' => string 'web 2.0' (length=7)
'categories' =>
array
16082 =>
array
'id' => string '16082' (length=5)
'tag' => string 'Auto & Motorrad' (length=15)
51 =>
array
'id' => string '51' (length=2)
'tag' => string 'Blogosph?re' (length=11)
66 =>
array
'id' => string '66' (length=2)
'tag' => string 'Neues & Trends' (length=14)
68 =>
array
'id' => string '68' (length=2)
'tag' => string 'Privat' (length=6)
回答by Mike B
You can access the inactive tags array with (assuming $myArray contains the array)
您可以访问非活动标签数组(假设 $myArray 包含数组)
$myArray['inactiveTags'];
Your question doesn't seem to go beyond accessing the contents of the inactiveTags key so I can only speculate with what your final goal is.
您的问题似乎并没有超出访问 inactiveTags 键的内容,所以我只能推测您的最终目标是什么。
The first key:value pair in the inactiveTags array is
inactiveTags 数组中的第一个键值对是
array ('195' => array(
'id' => 195,
'tag' => 'auto')
)
To access the tag value, you would use
要访问标记值,您可以使用
$myArray['inactiveTags'][195]['tag']; // auto
If you want to loop through each inactiveTags element, I would suggest:
如果你想遍历每个 inactiveTags 元素,我建议:
foreach($myArray['inactiveTags'] as $value) {
print $value['id'];
print $value['tag'];
}
This will print all the id and tag values for each inactiveTag
这将打印每个 inactiveTag 的所有 id 和 tag 值
Edit:: For others to see, here is a var_dump of the array provided in the question since it has not readible
编辑 :: 供其他人查看,这里是问题中提供的数组的 var_dump,因为它不可读
array
'languages' =>
array
76 =>
array
'id' => string '76' (length=2)
'tag' => string 'Deutsch' (length=7)
'targets' =>
array
81 =>
array
'id' => string '81' (length=2)
'tag' => string 'Deutschland' (length=11)
'tags' =>
array
7866 =>
array
'id' => string '7866' (length=4)
'tag' => string 'automobile' (length=10)
17800 =>
array
'id' => string '17800' (length=5)
'tag' => string 'seat leon' (length=9)
17801 =>
array
'id' => string '17801' (length=5)
'tag' => string 'seat leon cupra' (length=15)
'inactiveTags' =>
array
195 =>
array
'id' => string '195' (length=3)
'tag' => string 'auto' (length=4)
17804 =>
array
'id' => string '17804' (length=5)
'tag' => string 'coupès' (length=6)
17805 =>
array
'id' => string '17805' (length=5)
'tag' => string 'fahrdynamik' (length=11)
901 =>
array
'id' => string '901' (length=3)
'tag' => string 'fahrzeuge' (length=9)
17802 =>
array
'id' => string '17802' (length=5)
'tag' => string 'günstige neuwagen' (length=17)
1991 =>
array
'id' => string '1991' (length=4)
'tag' => string 'motorsport' (length=10)
2154 =>
array
'id' => string '2154' (length=4)
'tag' => string 'neuwagen' (length=8)
10660 =>
array
'id' => string '10660' (length=5)
'tag' => string 'seat' (length=4)
17803 =>
array
'id' => string '17803' (length=5)
'tag' => string 'sportliche ausstrahlung' (length=23)
74 =>
array
'id' => string '74' (length=2)
'tag' => string 'web 2.0' (length=7)
'categories' =>
array
16082 =>
array
'id' => string '16082' (length=5)
'tag' => string 'Auto & Motorrad' (length=15)
51 =>
array
'id' => string '51' (length=2)
'tag' => string 'Blogosph?re' (length=11)
66 =>
array
'id' => string '66' (length=2)
'tag' => string 'Neues & Trends' (length=14)
68 =>
array
'id' => string '68' (length=2)
'tag' => string 'Privat' (length=6)
回答by Benjamin Oakes
If $ais the array that's passed, $a[76][0]['id']should give '76' and $a[76][1]['id']should give '81', but I can't test as I don't have PHP installed on this machine.
如果$a是传递的数组,$a[76][0]['id']应该给出'76',$a[76][1]['id']应该给出'81',但我无法测试,因为我没有在这台机器上安装PHP。
回答by jjclarkson
Study up on multidimensional arrays. This questionmight help.
回答by CodeJoust
Regarding your code: It's slightly hard to read... If you want to try to view it all in a php array format, just print_r it. This might help:
关于您的代码:阅读有点困难...如果您想尝试以 php 数组格式查看所有内容,只需 print_r 即可。这可能有帮助:
<?php
$a =
array(
'languages' =>
array (
76 =>
array ( 'id' => '76', 'tag' => 'Deutsch', ), ), 'targets' =>
array ( 81 =>
array ( 'id' => '81', 'tag' => 'Deutschland', ), ), 'tags' =>
array ( 7866 =>
array ( 'id' => '7866', 'tag' => 'automobile', ), 17800 =>
array ( 'id' => '17800', 'tag' => 'seat leon', ), 17801 =>
array ( 'id' => '17801', 'tag' => 'seat leon cupra', ), ),
'inactiveTags' =>
array ( 195 =>
array ( 'id' => '195', 'tag' => 'auto', ), 17804 =>
array ( 'id' => '17804', 'tag' => 'coupès', ), 17805 =>
array ( 'id' => '17805', 'tag' => 'fahrdynamik', ), 901 =>
array ( 'id' => '901', 'tag' => 'fahrzeuge', ), 17802 =>
array ( 'id' => '17802', 'tag' => 'günstige neuwagen', ), 1991 =>
array ( 'id' => '1991', 'tag' => 'motorsport', ), 2154 =>
array ( 'id' => '2154', 'tag' => 'neuwagen', ), 10660 =>
array ( 'id' => '10660', 'tag' => 'seat', ), 17803 =>
array ( 'id' => '17803', 'tag' => 'sportliche ausstrahlung', ), 74 =>
array ( 'id' => '74', 'tag' => 'web 2.0', ), ), 'categories' =>
array ( 16082 =>
array ( 'id' => '16082', 'tag' => 'Auto & Motorrad', ), 51 =>
array ( 'id' => '51', 'tag' => 'Blogosph?re', ), 66 =>
array ( 'id' => '66', 'tag' => 'Neues & Trends', ), 68 =>
array ( 'id' => '68', 'tag' => 'Privat', ), ), );
printarr($a);
printarr($a['languages'][76]['tag']);
parintarr($a['targets'][81]['id']);
function printarr($in){
echo "\n";
print_r($in);
echo "\n";
}
//run in php command line php path/to/file.php to test, switching otu the print_r.

