【问题标题】:PHP - Create a multidimensional arrayPHP - 创建一个多维数组
【发布时间】:2014-03-03 08:28:33
【问题描述】:

有没有办法从 PHP 中的一些现有数组创建这个数组

Array(
[in-door] => Array
    (
        [tv] => Array
            (
                [views] => 123
                [likes] => 234
                [comments] => 345
                [shares] => 456
            )

        [sofa] => Array
            (
                [views] => 567
                [likes] => 789
                [comments] => 890
                [shares] => 901
            )
    ),
[out-door] => Array
        (
        [chair] => Array
                (
                    [views] => 109
                    [likes] => 98
                    [comments] => 987
                    [shares] => 876
                )

        [bench] => Array
            (
                [views] => 765
                [likes] => 654
                [comments] => 543
                [shares] => 432
            )

    )

)

我尝试过的

$list_categories = array("in-door");
$list_items = array(array("tv", "sofa"));
$list_items_info = array(array(array(
         "views" => 123,
         "likes" => 234,
         "comments" => 345,
         "shares" => 456
          ),
    array(
         "views" => 123,
         "likes" => 234,
         "comments" => 345,
         "shares" => 456
         )
            ));
        print_r(array_combine($list_categories, array_combine($list_items, $list_items_info)));

没有给我带来我的期望。

除此之外,什么是最有效的方式来获得一个项目的视图/喜欢。我应该使用数组还是 json 对象?

【问题讨论】:

  • 这个问题解决了吗?如果是这样,请考虑通过单击旁边的空心复选标记来接受答案。
  • 感谢 CodeAngry 和 Amal 对我的帮助,特别是 CodeAngry(您的解决方案与我的需求 100% 匹配)

标签: php arrays multidimensional-array


【解决方案1】:
$list_categories = array("in-door");
$list_items = array("tv", "sofa");
$list_items_info = array(
    "views" => 123,
    "likes" => 234,
    "comments" => 345,
    "shares" => 456
);

$array = array();

foreach ($list_categories as $cat) {
    foreach ($list_items as $item) {
        foreach ($list_items_info as $itemname => $iteminfo) {
            $array[$cat][$item][$itemname] = $iteminfo;
        }
    }
}

输出:

Array
(
    [in-door] => Array
        (
            [tv] => Array
                (
                    [views] => 123
                    [likes] => 234
                    [comments] => 345
                    [shares] => 456
                )

            [sofa] => Array
                (
                    [views] => 123
                    [likes] => 234
                    [comments] => 345
                    [shares] => 456
                )

        )

)

Online demo

【讨论】:

  • 感谢您的帮助,此解决方案解决了我的问题。但是,我需要使用 get_item_list_info 函数将 $list_items_info 移动到第一个 foreach 中。
猜你喜欢
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 2018-06-17
相关资源
最近更新 更多