无循环的PHP回显数组值
我有以下代码,可以很好地为我提供ID为10的客户名称:无循环的PHP回显数组值,php,arrays,Php,Arrays,我有以下代码,可以很好地为我提供ID为10的客户名称: foreach($customer_list as $row) { if ($row->CUSTOMER_ID == 10) echo $row->NAME; } 有没有一种方法可以不使用foreach循环和if语句而更直接地实现这一点?我想做一些类似的事情: echo $customer_list[CUSTOMER_ID][10]->NAME; 但我不知道语法,甚至不知道是否可能 您可以使用array
foreach($customer_list as $row) {
if ($row->CUSTOMER_ID == 10)
echo $row->NAME;
}
有没有一种方法可以不使用foreach循环和if语句而更直接地实现这一点?我想做一些类似的事情:
echo $customer_list[CUSTOMER_ID][10]->NAME;
但我不知道语法,甚至不知道是否可能 您可以使用
array\u filter
它将返回ID为10的客户数组。然后,我们选择第一个匹配项(可能是唯一的匹配项)并访问NAME
属性
$name = reset( array_filter(
$customer_list,function($c){return $c->CUSTOMER_ID === 10;}
))->NAME;
更简洁的方法是将其分解成一个单独的函数:
$getCustName = function($list,$id){
return reset( array_filter(
$list,
function($c) use ($id) {return $c->CUSTOMER_ID === $id;}
))->NAME;
};
然后,只需一行即可轻松获取名称:
$name = $getCustName($customer_list,10);
你可以使用这个方法。
基本上,您需要传递一个函数,该函数将检查customer_Id的值并返回数组的元素。您可以在函数中添加代码,然后在需要名称时调用该函数。我假设您有唯一的客户ID
function getCustName($customers,$id){
if(count($customers)>0){
foreach($customers as $row) {
if ($row->CUSTOMER_ID == $id)
return $row->NAME;
}
} else{
return false;
}
}
现在,如果需要获取客户名称,只需调用函数
echo getCustName($customer_list,10);
您从何处获得
$customer\u list
变量?数据库呼叫?