gpt4 book ai didi

php - 我在这个数组和 foreach 上做错了什么?

转载 作者:可可西里 更新时间:2023-11-01 01:07:00 24 4
gpt4 key购买 nike

我有两个数组,我可以使用 $result[0] 或 $result[1] 获得它们。

我已经完成了一个 print_r($results[0]) 和一个 print_r($result[1])。他们都给了我我想要的两个不同的数组。

但是,如果我这样做,我将无法获得我的任何信息

foreach($results[0] as $result){
echo $result['data']['id'];
}

我希望能够区分这两个数组,所以我希望能够从这两个数组中获取信息。

我也对 $results 进行了 json_decode。

如果有人能帮我解决这个问题,那就太好了!谢谢

编辑:

Array
(
[nonsense] => Array
(
[more] => information
[less] => less stuff
)


[data] => Array
(
[0] => Array
(
[id] => some id
)
[1] => Array
(
[eh] => some eh
)
)
)

Array
(
[more stuff] => Array
(
[more] => information
[less] => less stuff
)


[more data] => Array
(
[0] => Array
(
[freshstuff] => some id
)
)

)

最佳答案

在您的示例中,$result['data']['id'] 不存在。 id 位于另一个 数组中。

foreach 在这种情况下没有用,因为数据不统一。当您遍历 $results[0] 时,您会在第一次迭代中获得 nonsense 键,在第二次迭代中获得 data 键。此外,nonsense 键是一个键/值对数组,而 data 键是一个键/值对数组数组。

$results[0]$results[1] 看起来 一致,但它们包含不同的 key 。

echo $results[0]['data'][0]['id'], "<br>\n";
echo $results[0]['data'][1]['eh'], "<br>\n";

echo $results[1]['more data'][0]['freshstuff'], "<br>\n";

更新

foreach() 不适用于这种数组。 array_walk_recurisive()在这种情况下通常是一个不错的选择。

<pre>
<?php

$results = array(
array(
'nonsense' => array(
'more' => 'information',
'less' => 'less stuff'
),


'data' => array(
array('id' => 'some id'),
array('eh' => 'some eh')
)
),

array(
'more stuff' => array(
'more' => 'information',
'less' => 'less stuff'
),


'more data' => array(
array('freshstuff' => 'some id'))

)
);


function test_print($item, $key)
{
echo "$key: $item\n";
}

array_walk_recursive($results, 'test_print');

?>
</pre>

显示

more: information
less: less stuff
id: some id
eh: some eh
more: information
less: less stuff
freshstuff: some id

根据您的需要,您还可以找到其他一些 array functions有用。

关于php - 我在这个数组和 foreach 上做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8516559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com