2017-12-13 7 views
2

PHPの配列からデータを削除したい。ここでは、配列は次のとおりです。ここでPHPのArrayからデータを削除する

array(4) { 
    [0]=> array(1) { ["image"]=> string(20) "w85YrKChBGTZ9fQS.jpg" } 
    [1]=> array(1) { ["image"]=> string(20) "3buahEs6rRWFdYez.jpg" } 
    [2]=> array(1) { ["image"]=> string(20) "gYPtDrx3sFzkVENB.jpg" } 
    [3]=> array(1) { ["image"]=> string(20) "JE3rodDvs6521cFm.jpg" } 
} 

は私の方法と私は削除しています:

public function deleteImage(){ 
    foreach (getCarImages() as $array){ 
     //var_dump($array).'<br>'; 
     $index = array_search('w85YrKChBGTZ9fQS.jpg',$array); 
     if($index !== FALSE){ 
      var_dump($index).'<br>'; 
      unset($array[$index]); 
     }else{ 
      echo '<br>else here'; 
     } 
    } 
} 

そして、ここではdeleteImage()

文字列の結果は、(5) "画像"

です

else

012ここ

ここで他のここ

私は混乱しています。どのようにしてメインアレイからネストされた配列を削除できますか?

public function deleteImage(){ 
    return array_filter(getCarImages(), function ($v) { 
     return $v['image'] != 'w85YrKChBGTZ9fQS.jpg'; 
    }); 
} 

更新:匿名関数はおよそ$imageName変数を知らないあなたは、アレイから全体の部分配列を削除する必要がある場合

+0

「if($ index)」を試してください。 itemが見つからない場合、 'array_search'は空を返します。 – urfusion

+0

あなたの 'getCarImages()'関数を投稿してください。実際にやるべき 'deleteImage()'とは何ですか?戻り値はありますか?ファイル機能?データベースクエリ? – mickmackusa

答えて

2

は、その後、array_flter関数を使用します。あなたはuseでなければなりません。

public function deleteImage($imageName = null) 
{ 
    $myarray = array_filter(
     getCarImages(), 
     function ($v) use ($imageName) { return $v['image'] != $imageName; } 
    ); 
} 
+0

正常に動作しますが、このような動的な値を設定します。 –

+0

public function deleteImage($ imageName = null){ $ myarray = array_filter(getCarImages()、function($ v){ return $ v ['image']! = $ imageName; }); –

+0

しかし、それは私にこのエラーを与えるメッセージ:未定義の変数:imageName –

1

イメージは機能への参照として転送できます。

public function deleteImage(&$images){ 
    foreach ($images as $k => $array){ 
     //var_dump($array).'<br>'; 
     $index = array_search('w85YrKChBGTZ9fQS.jpg',$array); 
     if($index !== FALSE){ 
      var_dump($index).'<br>'; 
      unset($images[$k]); 
     }else{ 
      echo '<br>else here'; 
     } 
    } 
} 
+0

非常に働いてくれてありがとう...! –

+0

@KrisRoofe私たちは間違いなくアップフォースを求めていますか?私は私の最高の答えのすべてでそれをしている必要があります。 https://stackoverflow.com/a/47725480/2943403 – mickmackusa

+0

@mickmackusaええ、そうです。私はあなたのアドバイスを取る。 –

関連する問題