【问题标题】:PHP search in multidimensional arrayPHP在多维数组中搜索
【发布时间】:2018-02-21 06:39:07
【问题描述】:

我有如下多维数组,

 $_users = array(
            array(
                'uid' => '1', 
                'fname' => 'T1',
                'lname' => 'N1',
                'login' => 'Test',
                'email' => 't@test.com',
            ),
           array(
                'uid' => '2', 
                'fname' => 'T2',
                'lname' => 'N2',
                'login' => 'Test',
                'email' => 't@test.com',
            ),
          array(
                'uid' => '3', 
                'fname' => 'T3',
                'lname' => 'N3',
                'login' => 'John',
                'email' => 'john@test.com',
            )
        );

现在我正在尝试检查这个数组,如果登录名和电子邮件相同,那么我将添加新的电子邮件地址,如下所示,

$_users = array(
                array(
                    'uid' => '1', 
                    'fname' => 'T1',
                    'lname' => 'N1',
                    'login' => 'Test',
                    'email' => 't@test.com',
                    'new_email' => 't@test.com',

                ),
               array(
                    'uid' => '2', 
                    'fname' => 'T2',
                    'lname' => 'N2',
                    'login' => 'Test',
                    'email' => 't@test.com',
                    'new_email' => '2_Test_t@test.com',
                ),
              array(
                    'uid' => '3', 
                    'fname' => 'T3',
                    'lname' => 'N3',
                    'login' => 'John',
                    'email' => 'john@test.com',
                    'new_email' => 'john@test.com',
                )
            );

我被这个困住了,现在知道如何得到这个。你能请人帮我吗?谢谢,

【问题讨论】:

  • 感谢您的评论,但我的阵列中有 20,000 封电子邮件和登录。在排序我的数组计数是 20,000。我是 php 新手,不知道如何搜索它。
  • 搜索邮箱和登录值一样吗?所以在这种情况下,检查这两个代码将更新第一次匹配的电子邮件。

标签: php arrays search multidimensional-array


【解决方案1】:
$a = "Test";
$b = "t@test.com";

$i = 0;
foreach ($_users as $value){

    //echo $value['login'];
    if($value['login'] === $a && $value['email'] === $b){

        //ADd Data
        $_users[$i]['new_email'] = "2_Test_t@test.com";

    }

$i++;
}

echo "<pre>";
print_r($_users);

Live Demonstration

【讨论】:

  • 它似乎改变了第一个匹配记录。 2_Test_t@test.com。这里 2 是 uid。何时应更改第一条记录。
猜你喜欢
  • 2016-09-19
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 2011-05-22
  • 2011-05-20
相关资源
最近更新 更多