Php 从多维数组中获取键值无效
我试图从多维数组中获取一个名为“code”的值。当我以第一种方式转储并死亡时,它返回正确的值。当我想在代码中使用它时,它给出了错误“UndefinedIndex:code”。我还使用了array_column方式,即dd空数组 应获取正确$code的代码:Php 从多维数组中获取键值无效,php,arrays,laravel,multidimensional-array,controller,Php,Arrays,Laravel,Multidimensional Array,Controller,我试图从多维数组中获取一个名为“code”的值。当我以第一种方式转储并死亡时,它返回正确的值。当我想在代码中使用它时,它给出了错误“UndefinedIndex:code”。我还使用了array_column方式,即dd空数组 应获取正确$code的代码: foreach($house作为$house){ $code=$house['code'];//在dd中而不是在代码中返回正确的值 $code=array\u column($house,'code');//在dd中返回空数组,随后在文件\u
foreach($house作为$house){
$code=$house['code'];//在dd中而不是在代码中返回正确的值
$code=array\u column($house,'code');//在dd中返回空数组,随后在文件\u get\u内容中给出错误数组到字符串的转换
$a=文件内容('some-url'.$code./surveys');
$a=json_decode($a,true);
$surveys=$a['surveys'];
$completedSurveys=$a['surveysCompleted'];
$done=0;
$ndone=0;
foreach($completedSurveys作为$complete){
如果($完成){
$done++;
}否则,如果(!$complete){
$ndone++;
}否则{继续;}
}
}
$house
垃圾场:
array:30 [
id: ''
project: integer
city: ''
streetName: ''
houseNumber: ''
code: ''
fullStreet: ''
forms: array:1 [
0: integer
]
]
$code
转储
$house['code']: "AB12-CD34-EF56-GH78"
array_column($house, 'code'): []
我想知道这个问题的解决方案,这样我就可以使用url中的$code从api中获取正确的内容。您可以在整个数组中使用array\u列,而不是子数组。
$houses =
[
[
'code' => '23',
'city' => 'Dublin'
],
[
'city' => 'Canberra'
],
[
'code' => '47',
'city' => 'Amsterdam'
]
];
var_export(array_column($houses, 'code'));
输出:
array (
0 => '23',
1 => '47',
)
然后你可以按照这些思路做一些事情
$get_survey = function ($code) {
if($response = file_get_contents("http://example.com/$code/surveys"))
if($json = json_decode($response, true))
return $json;
};
$completed = [];
foreach(array_column($houses, 'code') as $code) {
if($survey = $get_survey($code)) {
// survey count calculation.
} else {
$completed[$code] = null; // failure to get survey data.
}
}
array\u column返回一个数组,您将其用作文件\u get\u content中的字符串扫描是否显示所有
$house
的转储?似乎至少有一个字段没有code
字段。并摆脱否则{continue;}
,因为它永远不会消失execute@RomanBobrik抱歉,我不能,但你是对的$houses是一个60(0-59)的数组,只有前三个有'code'@coder是的,我意识到了这一点,这就是为什么我得到了错误的数组到字符串转换。这也是为什么这不是最好的解决方案的原因。首先,在你的循环中使用if(isset($house['code']){…
,然后…