2016-07-24 16 views
2

Was ich will ist, dass, wenn ich array('B2WGUR0276 ','TMT Steel') und sobald der letzte Wert ist wahr, dann setzen Sie den letzten Wert für alle die gleichen Kombinationen von ('B2WGUR0276 ','TMT Steel') wahr.Legen Sie inneren Wert für mehrdimensionale Array

$ for_quantity setzt wahr oder falsch für das dritte Element in der inneren Anordnung

<?php 
    $b=array 
    (array('B2WGUR0276 ','TMT Steel','10','false'), 
    array('B2WGUR0276','TMT Steel','5','true'), 
    array('B2WGUR0276','Jindal JSW ','10','false'), 
    array('B2WGUR0276 ','TMT Steel','10','false') 
    ); 
    $f=array(array('B2WGUR0276 ','TMT Steel'),array('B2WGUR0276','Jindal JSW '),array('B2WGUR0276 ','TMT Steel')); 
    foreach($b as $key=>$keys) { 
     if($for_quantity=='true'&&in_array($f,$b)) { 
      $b[$key][3]='true'; 
     } 
    } 

?> 

Ausgang, wird aktualisiert Array $ b wie aussehen sollte:

$b=array 
    (array('B2WGUR0276 ','TMT Steel','10','true'), 
    array('B2WGUR0276','TMT Steel','5','true'), 
    array('B2WGUR0276','Jindal JSW ','10','false'), 
    array('B2WGUR0276 ','TMT Steel','10','true') 
    ); 
+0

klingt gut. wie wird nun der letzte Wert auf true aktualisiert und was wird bis jetzt von dir versucht? –

+0

ich habe in_array und dann foreach-Schleife verwendet, um den Wert zu setzen für $ b [$ key] [3] = ‚true‘ @Anant – Aryan

+0

Code Mühe geben hier und wir werden Ihnen sagen, wie es korrigieren –

Antwort

2

Da das Array $ b, könnten Sie dies verwenden:

$match = array_flip(array_map(function ($row) { 
    return end($row) === 'true' ? $row[0] . "|" . $row[1] : ""; 
}, $b)); 
foreach ($b as &$row) { 
    $row[count($row)-1] = isset($match[$row[0] . "|" . $row[1]]) ? 'true' : 'false'; 
} 

Nach diesem Code $ b wird sein, wie Sie es wollen.

Sehen Sie es auf eval.in laufen.

+0

es gilt für diese Kombination auch Array ('B2WGUR0276', 'Jindal JSW') @trincot – Aryan

+0

Ah ja, ich sehe jetzt, dass Sie die einzigartige Kombination brauchen . Ich werde aktualisieren ... – trincot

+0

, weil es anders ist ("B2WGUR0276", "TMT Steel"). @trincot – Aryan

Verwandte Themen