2016-07-22 21 views
0

配列の3番目の要素がtrueの場合、他の要素をtrueに設定したいと思います。配列の配列の中に要素を設定する

<?php 
    $cars = array 
      (
      array(1,1,'f'), 
      array(2,2,'f'), 
      array(3,3,'t'), 
      array(4,4,'f') 
     ); 

     foreach($cars as $keys){ 
      if($keys[2]=='t') 
      $count=1; 
     } 

     foreach($cars as $keys){ 
      if($count==1) 
      $keys[2] = 't'; 
     } 
     print_r($cars); 
    ?> 
+1

のためのソリューションですブール値の真と偽の代わりに "t"を使用しますか? – Xatenev

+0

fとtはブール型ではない文字列でした@Xatenev – art

+0

正確には、質問はなぜ「真」と「偽」の代わりに「f」と「t」を使用するのですか? – deceze

答えて

1

後述のようにちょうど試してみてください、2つの物事を変える:

$cars = array 
    (
    array(1,1,'f'), 
    array(2,2,'f'), 
    array(3,3,'t'), 
    array(4,4,'f') 
); 
$count = 0; // declare $count 
foreach($cars as $keys){ 
    if($keys[2]=='t') 
     $count=1; 
} 
foreach($cars as $key=>$keys){ 
    if($count==1) 
    $cars[$key][2] = 't'; // change value to t like this 
} 

は出力:

Array 
(
    [0] => Array 
     (
      [0] => 1 
      [1] => 1 
      [2] => t 
     ) 

    [1] => Array 
     (
      [0] => 2 
      [1] => 2 
      [2] => t 
     ) 

    [2] => Array 
     (
      [0] => 3 
      [1] => 3 
      [2] => t 
     ) 

    [3] => Array 
     (
      [0] => 4 
      [1] => 4 
      [2] => t 
     ) 

) 
1

あなただけの実際の変化に基準シンボル&を使用して、この変更を行う、ほとんど接近していました

foreach($cars as $keys){ 

このチェック

foreach($cars as &$keys){ 

に: https://eval.in/609879

1
$exists= false; 
foreach($cars as $car) 
{ 
    if($car[2] == 't') 
    { 
     $exists= true; 
    } 
} 

if($exists) 
{ 
    for($i=0; $i<count($cars); $i++) 
    { 
     $cars[$i][2] = 't'; 
    } 
} 
0

ここでは、 "F" と名付けられstrnig "という名前の文字列を使用しないなぜ

<?php 

$cars = array(
    array(1,1,'f'), 
    array(2,2,'f'), 
    array(3,3,'t'), 
    array(4,4,'f') 
); 

if(in_array('t', array_column($cars, 2))){ 
    $cars = array_map(function($v){ 
     $v[2] = 't'; 
     return $v; 
    }, $cars); 
} 
関連する問題