Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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,我有php中的数组: Array ( [id] => 1 [comp_id] => 1 [transaction_purpose] => 0 [source_of_funds] => 1 [beneficiary_relationship] => 0 [cus_occupation] => 0 [cus_id_image_2] => 0

我有php中的数组:

Array
    (
        [id] => 1
        [comp_id] => 1
        [transaction_purpose] => 0
        [source_of_funds] => 1
        [beneficiary_relationship] => 0
        [cus_occupation] => 0
        [cus_id_image_2] => 0
        [cus_id_image_3] => 0
        [ben_id_type] => 0
        [ben_id_number] => 1
    )
如果valie为1,我只想获取数组key=>value对

结果数组应为:

Array
    (
        [id] => 1
        [comp_id] => 1
        [source_of_funds] => 1
        [ben_id_number] => 1
    )
我试过:

$returnArray = array();
    foreach($mainArray as $r){
        if($r>0){
            array_push($returnArray, $mainArray);
        }
    }
但是,它给了我4倍的主阵列。有没有办法做到这一点?谢谢..

只需使用:

$newarray=array\u过滤器$array,函数$var{ 返回$var==1; };

试试这个:

$returnArray=array\u filter$result


您可以查看PHP函数以了解更多信息。

那么,您还希望发生什么

        array_push($returnArray, $mainArray);
如果您发现一个元素的值大于0,则将整个原始数组推到新数组上,而不仅仅是刚才测试的键/值

您可能想要:

$newarr = array();
foreach($mainArray as $key => $value) {
   if ($value > 0) {
        $newarr[$key] = $value;
   }
}

这看起来类似于您所问的:无论如何,请查看数组\过滤器。
        array_push($returnArray, $mainArray);
$newarr = array();
foreach($mainArray as $key => $value) {
   if ($value > 0) {
        $newarr[$key] = $value;
   }
}