2016-03-29 4 views
0

ich $data Array verfolgt habe meine Anforderungen Jetztin assoziativem Array mit vorherigem Elemente leeren Eintrag ersetzen

Array 
(
    [0] => Array 
     (
      [match_day] => MD27 
      [price] => 95.33 
     ) 
    [1] => Array 
     (
      [match_day] => MD28 
      [price] => 97.82 
     ) 
    [2] => Array 
     (
      [match_day] => MD29 
      [price] => 
     ) 
    [3] => Array 
     (
      [match_day] => MD30 
      [price] => 
     ) 
    [4] => Array 
     (
      [match_day] => MD31 
      [price] => 
     ) 
) 

ist - mit vorherigem Preis Attribute leer Eintrag von Preisattribut ersetzen.

Hilfe ist wirklich zu schätzen. Vielen Dank im Voraus.

+0

Schleife durch mit einer Variablen, die Sie den Preis vergeben, wenn dies nicht der Fall leer, ansonsten verwenden Sie die Variable, um sie dem Preis zuzuordnen. Erledigt. – Rizier123

+0

Verwenden Sie die 'foreach()' -Funktion in PHP, um Ihr Array zu durchlaufen. – Jer

Antwort

0

Führen Sie eine foreach-Schleife an Ihrem Array durch, speichern Sie den vorherigen Preiswert und verwenden Sie die vorherige Option, wenn der aktuelle Wert leer ist. Beispiel:

$previous = 0; 
foreach($data AS $key => $row) { 
    if (empty($row['price'])) 
    $data[$key]['price'] = $previous; 
    else 
    $previous = $row['price']; 
} 
+0

Funktioniert perfekt .... Danke @Reversal –

2

Keine Notwendigkeit für for loop gehen Sie folgenden Code versuchen:

$result = []; 
array_walk($data, function($v,$k) use (&$result){ 
    $result[$k] = $v; 
    if(!isset($result[$k]['price']) || $result[$k]['price'] == null){ 
     $result[$k]['price'] = $result[$k - 1]['price']; 
    } 
}); 

print_r($result); 

Arbeits Demo ist Here

+0

Funktioniert perfekt .... Danke @Ali –

Verwandte Themen