Доступ к массивам внутри массивов в PHP
Здравствуйте, я хочу получить доступ к неактивным тегам внутри этого массива.
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)
Ответы
Ответ 1
Вы можете получить доступ к массиву неактивных меток с (если $myArray содержит массив)
$myArray['inactiveTags'];
Ваш вопрос, похоже, не выходит за рамки доступа к содержимому ключа inactiveTags, поэтому я могу только догадываться, какова ваша конечная цель.
Первая пара ключей: значение в массиве inactiveTags составляет
array ('195' => array(
'id' => 195,
'tag' => 'auto')
)
Чтобы получить доступ к значению тега, вы должны использовать
$myArray['inactiveTags'][195]['tag']; // auto
Если вы хотите пропустить каждый элемент inactiveTags, я бы предложил:
foreach($myArray['inactiveTags'] as $value) {
print $value['id'];
print $value['tag'];
}
Это приведет к печати всех значений id и тегов для каждого inactiveTag
Изменить:: Для других, чтобы увидеть, вот 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)
Ответ 2
Если $a
- массив, который передал, $a[76][0]['id']
должен дать '76', а $a[76][1]['id']
должен дать '81', но я не могу проверить, поскольку у меня нет PHP, установленного на этом компьютере.
Ответ 3
Изучите многомерные массивы. Этот вопрос может помочь.
Ответ 4
Что касается вашего кода:
Это немного сложно читать... Если вы хотите попробовать просмотреть все это в формате php-массива, просто напечатайте его.
Это может помочь:
<?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.