php - 使用 php 进行数组搜索

标签 php arrays

这是我的示例数组代码..如果用户搜索 523465 那么索引应该返回主数组 userdb..我尝试了几种方法但未能获得正确的输出。有人可以帮助我吗?

   <?php
   $userdb = Array (
        (0) => Array (
            (uid) => Array (
                    (0) => Array (
                            '10770' 
                    ),

                    (1) => Array (
                            '523465' 
                    ),

                    (2) => Array (
                            '4042389' 
                    ) 
            ),
            (name) => 'Sandra Shush',
            (url) => 'urlof100' 
    ),

    (1) => Array (
            (uid) => Array (
                    (0) => Array (
                            '102320' 
                    ),

                    (1) => Array (
                            '532465' 
                    ),

                    (2) => Array (
                            '40432389' 
                    ) 
            ),
            (name) => 'Stefanie Mcmohn',
            (pic_square) => 'urlof100' 
    ));
    echo '<pre>';
    print_r(array_column ( $userdb, 'uid' ));
    $key = array_search ( 5432365, array_column ( $userdb, 'uid' ) );

    echo ("The key is: " . $key);

最佳答案

需要几个 foreach 循环。这是我为您编写的功能。第一个参数是您的数组,第二个参数是您要搜索的值。

function searchArrayKey($userdb,$given_value){

foreach ($userdb as $firstkey => $val) {

    foreach ($val as $secondkey => $nestedarray){

        foreach ($nestedarray as $thirdkey => $thirdnestedarray){
            if ($thirdnestedarray['0'] == $given_value){
                return $firstkey;
            }
        }
    }
}

然后用来获取主数组的key

print_r (searchArrayKey($userdb, 523465));

关于php - 使用 php 进行数组搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38994773/

相关文章:

PHP - 使用一组 ID 从数据库中删除许多项目

php - 最大长度 XSLT 但在输出中保留完整段落

php - CakePHP 如何设置来自模型的消息?

javascript - 如何使用数组条件过滤数组

javascript - 使用 javascript 循环对象并将结果放入数组

ios - 在 Swift 3.1 中使用自定义 Setter 更新数组属性

php - 通过 bash CURL 将变量发送到 php

php - GD 可以选择渐进式 JPEG 中的隔行扫描深度吗?

javascript - 我可以使用循环来优化我的代码吗?

c - 正在重新分配的指针未在函数中分配 char* realloc