2016-05-09 18 views
0

からIDを取得:PHPの配列は、私はPHPで以下のような配列を持つ名前

「othername」などの「名前」を持つ
$my_array = array(); 
$my_array[] = array("id"=>"myid1", "name"=>"myname1"); 
$my_array[] = array("id"=>"otherid", "name"=>"othername"); 
$my_array[] = array("id"=>"morestuffid", "name"=>"morestuffname"); 

、それは$からそれぞれの「ID」を取得することが可能ですforループのないmy_array?

+0

'あるarray_walk()' '多分にarray_mapを()'を使用してください? – Rasclatt

+0

配列内のすべての名前のothernameまたはidのそれぞれのidだけを取得しますか? – workthat

+0

'foreach'を使わない理由はありますか? –

答えて

4

namearray_columnメソッドで取得することができます。次に、文字列をarray_searchで検索すると、配列のインデックスが返されます。

$index = array_search("othername",array_column($my_array,"name")); 
var_dump($my_array[$index]["id"]); 
+0

ありがとうございます。 forループよりもはるかにエレガントです。それが私が探していたものです。名声。 – kekit

+0

@kekit、あなたは数ヶ月後にコードを見ると、エレガントであるとは思えません。このコードは、少なくとも2つのループを必要とするので、非効率的でもあります。 –

+0

@kekitまた、 'array_column'は余分な配列を生成します –

0

$id = array_filter( 
     array_map(
      function($array) { 
       if($array['name']== 'othername'){ 
        return $array['id']; 
       } 
      },$my_array 
     ) 
    ); 
print "<pre>";print_r($id); 
関連する問題