41

さて、この配列内の「blah」の位置を取得する必要があります(位置は常に同じになるとは限りません)。例えば:

$array = (
    'a' => $some_content,
    'b' => $more_content,
    'c' => array($content),
    'blah' => array($stuff),
    'd' => $info,
    'e' => $more_info,
);

したがって、配列内で「blah」キーが配置されている場所の番号を返すことができるようにしたいと思います。このシナリオでは、3を返す必要があります。これをすばやく行うにはどうすればよいですか。そして、$array配列にまったく影響を与えません。

4

4 に答える 4

106
$i = array_search('blah', array_keys($array));
于 2011-09-18T06:16:20.093 に答える
8

キーが存在することがわかっている場合:

PHP 5.4(デモ):

echo array_flip(array_keys($array))['blah'];

PHP 5.3:

$keys = array_flip(array_keys($array));
echo $keys['blah'];

キーが存在するかどうかわからない場合は、次のように確認できますisset

$keys = array_flip(array_keys($array));
echo isset($keys['blah']) ? $keys['blah'] : 'not found' ;

これは単に似array_searchていますが、任意の配列内にすでに存在するマップを利用します。それが本当に優れているかどうかはわかりませんがarray_search、これはシナリオによって異なる可能性があるため、別の方法です。

于 2011-09-18T07:40:00.447 に答える
0

$keys=array_keys($array);のキーを含む配列を提供します$array

だから、あなたにinarray_search('blah', $keys);のインデックスを与えるでしょう、そしてそれ故にblah$keys$array

于 2011-09-18T06:24:24.243 に答える
-3

ユーザーarray_searchdoc)。つまり、 `$ index = array_search('blah'、$ array)

于 2011-09-18T06:16:53.290 に答える