Mehrdimensionales array Wert, wenn beendet

Ich möchte die Ergebnisse bringen, die mit dem status 1 in der array.(Sorry, ich spreche kein Englisch) Mein array ist;

 [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
                )

        )

in 10100002 zwei-status ist 0, aber das zweite array gefunden status 1. wenn der status Wert 1 ist in mehrere arrays, die ich gerne Ergebnis dieser ;

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

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

        )

Mein code ist hier;

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

// diese geben Sie mir nur ein Ergebnis. Ausgabe;

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

1 Antworten

  • Rakesh Jakhar
    4. Mai 2019

    Sie können 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
        }
     }
    });