【问题标题】:How to find value in array compared to another one如何在数组中找到与另一个值相比的值
【发布时间】:2019-10-24 21:30:13
【问题描述】:

我正在寻找一种方法来在数组中找到与另一个值相比的值。

假设我们有一个 php 数组:(我选择this 的一个问题,因为这正是我的情况)

$userdb = array(
    array(
        'uid' => '100',
        'name' => 'Sandra Shush',
        'pic_square' => 'urlof100'
    ),
    array(
        'uid' => '5465',
        'name' => 'Stefanie Mcmohn',
        'pic_square' => 'urlof100'
    ),
    array(
        'uid' => '40489',
        'name' => 'Michael',
        'pic_square' => 'urlof40489'
    )
);

我需要知道是否有办法找到(例如)uid 为 100 的 name 的值。

我希望已经清楚了,谢谢你的帮助:)

【问题讨论】:

  • 有办法吗?当然。你需要实际尝试。对访问数组进行一些研究并尝试一下。如果您已经已经尝试过,请在您的问题中包含您的尝试、结果以及您已经完成的调试。

标签: php arrays


【解决方案1】:

是的,有办法,

$temp = array_column($userdb, 'name','uid');
echo ($temp[100] ?? ''); // php 7  
echo (!empty($temp[100]) ? $temp[100] : ''); // < php 7

array_column — 返回输入数组中单列的值

语法:

array_column ( array $input , mixed $column_key [, mixed $index_key = NULL ] ) : array

Demo.

【讨论】:

  • 不错的一个(只需在aliveToDie帖子上发表评论。我会在回显之前检查密钥(100)是否存在以避免通知
【解决方案2】:

除非我忽略了某些东西,否则这就像遍历 $userdb 数组一样简单,在 uid 字段中查找匹配值,然后将生成的 name 存储在一个变量中:

$name = null;
foreach ($userdb as $user) {
    if ($user['uid'] == 100) {
        $name = $user['name'];
        break;
    }
}
var_dump($name);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多