Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无循环的PHP回显数组值_Php_Arrays - Fatal编程技术网

无循环的PHP回显数组值

无循环的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

我有以下代码,可以很好地为我提供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\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
变量?数据库呼叫?