Matriz Multidimensional de valor si sale

Quiero traer resultados que tienen el estado 1 en la matriz.(Lo siento, no habla inglés) Mi matriz es;

 [10100002] => Array
        (
            [0] => stdClass Object
                (
                    [ID] => 664
                    [barcode] => 10100002                   
                    [status] => 0
                )

            [1] => stdClass Object
                (
                    [ID] => 1339
                    [barcode] => 10100002                   
                    [status] => 0
                )

        )
 [10100004] => Array
        (
            [0] => stdClass Object
                (
                    [ID] => 1116
                    [barcode] => 10100004                   
                    [status] => 1
                )

            [1] => stdClass Object
                (
                    [ID] => 1826
                    [barcode] => 10100004                    
                    [status] => 0
                )

        )

en 10100002 dos es 0, pero la segunda matriz se encontró estado 1. si el valor de estado es de 1 en múltiples matrices y me gusta el resultado de este ;

[10100004] => Array
        (
            [0] => stdClass Object
                (
                    [ID] => 1116
                    [barcode] => 10100004                   
                    [status] => 1
                )

            [1] => stdClass Object
                (
                    [ID] => 1826
                    [barcode] => 10100004                    
                    [status] => 0
                )

        )

Mi código está aquí;

$result = array();
            foreach ($fetch_data as $value) {
              if($value->status== 1)
              $result[$value->barcode][] = $value;
            }

// esto me da un solo resultado. De salida;

[10100004] => Array
        (
            [0] => stdClass Object
                (
                    [ID] => 1116
                    [barcode] => 10100004                   
                    [status] => 1
                )
)

1 Respuestas

  • Rakesh Jakhar
    4 de mayo de 2019

    Usted puede utilizar array_walk

    $res = [];
    array_walk($arr, function($v, $k) use (&$res){
      foreach($v as $key => $value){
        if($value['status']){
            $res[$k] = $v[$key];
            break;//you can comment it if you need all the array with status 1
        }
     }
    });