我试图引用这个数组中的主电话号码
"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
电话可能不是an中的第三个项目,因此在决定引用它之前是否有一种方法来计算数组元素的"primary":true
。
您不能通过单个"简单"数组引用来做到这一点。PHP的数组"路径"是不可搜索的,就像您有XPath或其他东西一样。您必须在数组中循环查找"主要"记录,然后访问找到的数字:
foreach($records as $phone) {
if ($phone['primary']) {
return $phone['value'];
}
}
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'];