2016-07-27 9 views
1

要素名を知っている場合、配列から要素を削除するにはどうすればよいですか?例えば:ユーザーはapple 入力に基づいて特定の値インデックスを削除する

[troli][fruit][0]が除去された入射

​​
  1. Iは配列を有しています。

  2. ユーザがasparagus
[troli][vegetables][1]

が除去される入ります。

+0

を?あなたの試みを示すことは、私たちがあなたのニーズをよりよく理解するのを助けるかもしれません:) – Henders

+0

また、最初の発生を取り除かなければならない場合は、あなたのユースケースで正確にできますか?それぞれ ?あるもの? –

+0

同じフルーツ/野菜を1つ以上のtroliで無効にする関数を作成したい – cyberneo

答えて

1

array_filter機能使用したソリューション:あなたは、これが軌道に乗ることを試みた何

$arr = ['troli' => Array(
    'fruit' => Array(
     0 => Array(
      'name' => 'apple' 
     ), 
     1 => Array(
      'name' => 'banana' 
     ) 
    ), 
    'vegetables' => Array(
     0 => Array(
      'name' => 'tomatoes' 
     ), 
     1 => Array(
      'name' => 'asparagus' 
     ) 
    ) 
)]; 

$itemToRemove = "asparagus"; 
foreach ($arr['troli'] as $k => &$v) { 
    $v = array_filter($v, function($v) use($itemToRemove){ 
     return $v['name'] != $itemToRemove; 
    }); 
} 

print_r($arr); 
0

Nullをその場所に保存してから、nullデータを削除するためにarray_filterを使用できます。結果を必要な変数に格納します。

この場合は、ループを実行するためにforeachを使用します。値が入力値と一致するかどうかを確認します。一致する場合はnullに置き換え、array_filter()を適用します。

関連する問題