如何在满足某些条件的情况下将php数组拆分为两个数组?

如何在满足某些条件的情况下将php数组拆分为两个数组?,php,arrays,Php,Arrays,我想根据sub\u id 我的主阵列: sub_id等于8 sub_id等于8 sub_id等于9 sub_id等于9 sub_id等于9 结果应该是,第一个数组: sub_id equal 8 sub_id equal 8 第二个数组 sub_id equal 9 sub_id equal 9 sub_id equal 9 与符合您的条件的回调一起使用 $key = 8; $first = array_filter(

我想根据
sub\u id

我的主阵列: sub_id等于8 sub_id等于8 sub_id等于9 sub_id等于9 sub_id等于9

结果应该是,第一个数组:

    sub_id equal 8
    sub_id equal 8
第二个数组

        sub_id equal 9
        sub_id equal 9
        sub_id equal 9
与符合您的条件的回调一起使用

$key = 8;
$first = array_filter(
    $originalArray,
    function($value) use ($key) {
        return $value['sub_products_id'] == $key;
    }
);

$key = 9;
$second = array_filter(
    $originalArray,
    function($value) use ($key) {
        return $value['sub_products_id'] == $key;
    }
);

实际阵列是什么?您尝试了什么?使用与您的条件匹配的回调Hello!包含您尝试过的代码会很有帮助,这样我们就可以诊断您的问题。否则,您收到的答案可能过于笼统,无法应用于您的案例。$actual\u ar=array('sub\u id'=>8,'sub\u id'=>8,'sub\u id'=>9,'sub\u id'=>9)该数组不存在,因为您对每个项目都使用相同的键。在数组上迭代两次并不是我所说的很棒。很抱歉,一个有效的答案并不可怕。虽然这段代码可能很有用,但如果它对代码的功能有一些解释,那会更好,它是如何工作的,以及它是如何回答这个问题的。@adrianhh基本上,这段代码将产生输出,其中$arrayA[]将是[8,8],而$arrayB[]将是[9,9,9]。
$arrayA = [];
$arrayB = [];

array_map(function($value) use (&$arrayA, &$arrayB) {
    if ($value['sub_products_id'] == 8) {
        $arrayA[] = $value;
    } else {
        $arrayB[] = $value;
    }
}, $originalArray);