0

次の配列があります。

array(4) { 
    [0]=> array(1) { 
          [0]=> array(3) { 
               [0]=> string(11) "art_7880" [1]=> string(1) "1" [2]=> int(2950) 
          }
          [1]=> array(3) { 
               [0]=> string(8) "art_7880" [1]=> string(1) "1" [2]=> int(2950)  
          } 
          [2]=> array(3) { 
               [0]=> string(8) "art_7880" [1]=> string(1) "1" [2]=> int(2950)  
          }
          [3]=> array(3) { 
               [0]=> string(8) "art_7883" [1]=> string(1) "1" [2]=> int(4335)  
          }
}

グローバル配列では、要素 (例: element art_7880) を持つ配列を見つけたいと思います。次に、要素を持つ 1 つの配列をグローバル配列に追加したいと思いますart_7880

例: 要素を検索します。アート_7880

グローバル配列では、要素は次の配列になりますart_7880-[0]=> string(8) "art_7880" [1]=> string(1) "1" [2]=> int(2950)

この配列を取得[0]=> string(8) "art_7880" [1]=> string(1) "1" [2]=> int(2950)して、一度グローバル配列に追加または削除する必要があります。

これは私が使用したコードです:

foreach ($all_array as $keys => $elms) {
if(in_array('art_7880', $elms) && !in_array('art_7880', $arr_uniq)){
$arr_uniq[] = ''art_7880'';
var_dump($elms); //should been show `[0]=> string(11) "art_7880" [1]=> string(1) "1" [2]=> int(2950)`
}

しかし、うまくいきません...

エラーの場所を教えてください。

4

1 に答える 1

0

うーん、問題は、「art_7880」の周りに 2 つの引用符があることだと思います。これにより、「解析エラー: 構文エラー、予期しない 'art_7880' (T_STRING)...」のようなエラーが発生します。次のコードは、正しい出力を提供するはずです。

foreach ($all_array as $keys => $elms) {
    if(in_array('art_7880', $elms) && !in_array('art_7880', $arr_uniq)){
        $arr_uniq[] = 'art_7880';
        var_dump($elms);
    }
}

あなたの問題が(おそらくまた)ここに3D配列を持っているということでない限り、しかしあなたはそれを2D配列として扱っているだけです。(ネストされた配列がたくさんあることに気付いたからです。)その場合、これは正しい出力を与えるはずです:

foreach ($all_array[0] as $keys => $elms) {
    if(in_array('art_7880', $elms) && !in_array('art_7880', $arr_uniq)){
        $arr_uniq[] = 'art_7880';
        var_dump($elms);
    }
}

これらのコード スニペットのいずれかがお役に立てば幸いです。幸運を!

于 2013-06-26T18:20:23.223 に答える