ホームページ >バックエンド開発 >PHPチュートリアル >配列内の特定のキー値を見つけるためにトラバーサルは必要ですか?解決方法

配列内の特定のキー値を見つけるためにトラバーサルは必要ですか?解決方法

WBOY
WBOYオリジナル
2016-06-13 13:51:04962ブラウズ

配列内の特定のキー値を見つけるためにトラバーサルは必要ですか?
配列の形式は次のとおりです:

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->Array
(
    [0] => Array
        (
            [0] => ID
            [1] => Nickname
        )

    [1] => Array
        (
            [0] => 29
            [1] => Test1
        )

    [2] => Array
        (
            [0] => 654
            [1] => Xxx1
        )

)


たとえば、ID=29 のレコードを見つけるには、foreach を使用して配列
を走査します。
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->foreach($array as $value){
    if($value[0]==29)
    {
        //判断条件成立,进行相关操作    
    }
}

より効率的な方法はありますか?

in_array 関数を使用するという人もいるかもしれませんが、レコード内の ID 29 に加えて、ニックネームのキー値も 29 である可能性がある場合、この関数を使用してクエリを実行すると問題が発生します。

-----解決策---------
$array[1] は効率的です
in_array が機能しない場合は、array_keys($array, 29) または array_search(29,$array) を使用してください
------解決策------------------
PHP コード

$array = array(0 => array('id', 'name'), array('29', 'test'), array('65', '29'));
array_walk($array, $theValue = 'checkvalue', 29);

if ($theValue == true) {
    「ok」をエコーし​​ます。
}
関数 checkvalue($value, $key, $number)
{
    if ($value[0] == $number) {
        //何か
        true を返します。
    }
<div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。