Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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_Multidimensional Array - Fatal编程技术网

基于值搜索php多数组

基于值搜索php多数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有这个数组 Array ( [0] => Array ( [completed_system_products_id] => 15 [completed_systems_id] => 9 [step_number] => 8 [product_id] => 230 [1] =>

我有这个数组

    Array
            (
            [0] => Array
            (
            [completed_system_products_id] => 15
            [completed_systems_id] => 9
            [step_number] => 8
            [product_id] => 230

    [1] => Array
            (
            [completed_system_products_id] => 14
            [completed_systems_id] => 9
            [step_number] => 5
            [product_id] => 127

    [2] => Array
            (
            [completed_system_products_id] => 13
            [completed_systems_id] => 9
            [step_number] => 4
如何找到步长为4的数组

有什么想法吗

我试过这个

$something = array_search(4, $array);

但这不是我所期望的

您可以通过如下函数获取ID:

function GetIdWithStep4() {
    foreach ($array as $key => $value) {
        if ($value['step_number'] == 4) {
            return $key;
        }
    }
}

$something = GetIdWithStep4();

它在功能上是不等价的(您将获得一个数组而不是返回一个键值),但您可以使用带有回调的array_filter

$itemsOfInterest = array_filter ($source, function ($elem)
{
    return ((isset ($elem ['step_number'])) && ($elem ['step_number'] == 4));
});

$itemsOfInterest应该包含一个数组,其中只包含满足您要求的元素

尝试以下列出的功能: