1

PHP で配列要素をその値で取得する可能性はありますか。私がやりたくないのは、キーを知らずに要素を更新することですが、今は値です。

 $translations = array(
     "en" => 123,
     "de" => 456,
     "es" => 789,
     "fr" => 901
 );

私がやりたくないことは foreach ループでできることを知っています:

foreach($translations as $lang=>$id):
   if($id == 123) $translations[$lang] = 0;
endforeach;

しかし、このループを回避して自動的に設定する可能性はありますか?

4

3 に答える 3

0

これを使用する必要があります:

$translations[array_search('123',  $translations)] = 0;

編集:Alma Do Mundoによって提案されたソリューションを使用してください。彼は戻り値のチェックについて正しいです

于 2013-10-16T12:52:27.683 に答える
0

この方法でもできます。

array_keys 関数を search_values パラメーターと共に使用します。これらの値を持つキーの配列が得られます。次に、新しい配列に基づいて元の配列を更新できます。

重複する値もすべて処理されます。

$translations = array(
     "en" => 123,
     "de" => 456,
     "es" => 789,
     "fr" => 901,
     "it" => 123
 );

 $arr=array_keys($translations,$seach_value);

 if(count($arr)){
 foreach($arr as $key => $value){
    $translations[$value]=$new_value;
 }
 }
于 2013-10-16T13:10:42.120 に答える