我正在尝试引用此阵列中的主要电话号码
"phone":[{"label":"Fax","value":"234-345-5678","primary":false},{"label":"main","value":"456-234-2345","primary":false},{"label":"main","value":"456-456-4567","primary":true}]
我正在使用以下php:
"person_phone" => $phoneNumbers['phone'][2]['value'];
但是primary
手机可能不是a中的第3个项目,所以有没有办法在决定引用它之前评估数组元素的"primary":true
。
答案 0 :(得分:1)
你不能用一个简单的"来做到这一点。数组引用。 PHP的数组"路径"无法搜索,就好像你有XPath或其他什么东西一样。您必须在阵列上循环才能找到" primary"记录,然后访问该号码一旦找到:
foreach($records as $phone) {
if ($phone['primary']) {
return $phone['value'];
}
}
答案 1 :(得分:1)
Array_reduce将返回此数组{"label":"main","value":"456-456-4567","primary":true}
。而你可以采取任何价值,你需要
$val = array_reduce($arr['phone'], function ($c,$a) { if($a["primary"]) $c = $a; return $c;}, []);
echo $val['value'];