【问题标题】:Search multidimensional array by specific key and print the value php通过特定键搜索多维数组并打印值 php
【发布时间】:2011-06-13 11:13:10
【问题描述】:

我正在尝试打印数组。所有代码都可以在 foreach 循环中正常工作。但我正在尝试使用关联的键进行打印。有可能吗?

示例:key['user_id'] 这将打印数组中的所有user_id。是否可以?请帮帮我谢谢

Array
(
    [Post1] => Array
    (
        [id] => 1
        [title] => hi
    )
    [Post2] => Array
    (
        [0] => Array
            (
                [user_id] => 1
            )
        [1] => Array
            (
                [user_id] => 2
            )
    )
    [Post3] => Array
    (
        [0] => Array
            (
                [user_name] => 1
            )
    )
)

这是我的 PHP 代码:

foreach($post as $key => $value) {
    foreach($value as $print => $key) {
        if (is_array($key)){
            foreach($key as $print2 => $key2) {
                echo "<br>".$key2;
            }
        }else{
            echo "<br>".$key;
        }
    }
}

【问题讨论】:

  • 给出的例子不够清楚?
  • 使用print_rvar_dump()
  • @Shakti Singh 我的数组显示数组中的所有记录。我不想打印整个数组。我只想打印数组中的特定数据。假设我想打印“用户名和用户 ID”表单数组。有可能吗?
  • 上面例子的输出应该是什么样子的?

标签: php arrays


【解决方案1】:

您可以print_r 为每个人的三重奏达到您想要的相同结果。

【讨论】:

    【解决方案2】:

    我正在尝试打印数组。所有代码都可以在 foreach 循环中正常工作。但我正在尝试使用关联的键进行打印。有可能吗?

    您可以轻松地使用递归来解决此类问题。您可以使用以下内容:

    function printValuesByKey($array, $key) {
        if (!is_array($array)) return;
        if (isset($array[$key])) 
            echo $key .': '. $array[$key] .'<br>';
        else
            foreach ($array as $v)
                printValuesByKey($v, $key);
    }
    

    在你的例子中:

    printValuesByKey($array, 'user_id');
    

    will打印:

    user_id: 1
    user_id: 2
    

    【讨论】:

      猜你喜欢
      • 2019-10-16
      • 2011-12-27
      • 2019-09-13
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      相关资源
      最近更新 更多