2011-01-13 10 views
1

mysqlのような配列要素の値を検索する必要があります。mysqlと同様の配列要素の値を検索する

配列は以下のとおりです。

$arraydata= 
    array (0=> array('data'=>1), 
    1=> array('data'=>'1|5'), 
    2=>array('data'=>'2|3'), 
    3=>array('data'=>'1|5|6'), 
    4=>array('data'=>'1|5|6|7'), 
    5=>array('data'=>'2|3|4'), 
    6=>array('data'=>'2|3|4|8') 
); 

配列の要素「データ」の値に「1」を検索したい場合は、出力は復帰要素0,1,3,4でなければなりません。 "2"を検索すると、出力は返品要素になります。2,5,6

+1

あなた自身の質問の書式を設定する方法を学んだ頃です。コードを4つのスペースでインデントしてください(または '{}'ボタンを使用してください)。 http://stackoverflow.com/editing-help – deceze

+0

'1 | 5 | 6'を引用する必要はありませんか? – ajreal

+0

これは引用符と文字列です –

答えて

1

array_keysにオプションの検索パラメータがあります。

$array = Array(0 => 1, 1 => 0, 2 => 1); 
print_r(array_keys($array, 1)); 

しかし、あなたは多次元配列を使用しているようです - わかりません。代わりにforeachを使用する方がよいでしょう。

$results = Array(); 
foreach($arraydata as $key => $value) { 
    if(strpos($value['data'],'1') !== false) { 
    $results[] = $key; 
    } 
} 
+0

配列データ要素は1、1、5、1、5、6、1、5、6、7のようになります したがって、出力は0,1,3,4の配列要素になります。 – Rahul

+0

@Rahul:「データ」には数値ではなく文字列が含まれていると確信しています。それが動作する場合、答えを再確認してください –

+0

私たちは1または2まで9を検索すると正常に動作します。しかし、11または22を検索すると空の結果が返されます。 $ arrayデータに余分な7 => '11 | 12 | 13'、8 => '22 | 23 | 24 | 25'が含まれているとしますか? – Rahul

関連する問題