【问题标题】:How can I make an array dynamically in php?如何在 php 中动态创建数组?
【发布时间】:2014-09-29 19:02:50
【问题描述】:

在下面的代码中,foreach 的重复是未知的。这取决于数据库记录。

<?php
$i = 0;
        foreach ($get_all_users as $row){                    
                echo $name[$i] = $row->name;
                $i++;
        }
?>

现在,在下面,我想动态创建一个数组,与 foreach 重复一样多。但我不能在数组中添加任何循环:

$i = 0;
$data['name'] = array (                     
    $i => $name[$i],                     
);

其实我需要这样的东西:(当然不可能)

$i = 0;
$data['name'] = array (
    for(...)                    
    $i => $name[$i],
);

非常感谢。

【问题讨论】:

  • 我不明白你的意思。你是否试图在 foreach 中填充一个数组?你试过array_push()吗?
  • 很可能在 foreach 循环中构建一个数组,但我不知道你要什么。您能否尝试改写您的帖子,清楚地说明您的目标和问题?
  • 小心分配和相等。 $name[$i] = $row->name;仅仅因为它在 echo 中并不意味着它不会分配。

标签: php arrays codeigniter


【解决方案1】:

更新 参加您的评论...

$data['name'] = array(); 
foreach($get_all_users as $row){ 
    array_push($data['name'], $row->name);
}

【讨论】:

  • 但我必须像这样使用:$data['name'] 因为我想在视图中访问 $name 我使用 codeigniter。
  • @vahidnajafi 你需要在$data['name'] 中的名称数组吗?
  • @vahidnajafi 没问题!函数array_push 不需要知道你的数组大小。它只是将新值推送到 $data['names'] 数组的末尾。
  • 非常感谢。这正是我的答案。很抱歉,我不能投票。再次感谢您。
  • 由于我的声誉较低,我无法投票。我会尽快投票。非常感谢。
【解决方案2】:

您只需要定义一个空白数组,然后用空“索引”将值放入其中。

类似这样的:

$names = array();
foreach ($get_all_users as $row){                    
  $names[] = $row->name;
}

【讨论】:

  • 但我必须像 thie 一样使用:$data['name'] 因为我想在视图中访问 $name 我使用 codeigniter
  • @vahidnajafi 所以使用它?它不会改变答案
  • 您可以使用 $names[]['name'] - 这将创建具有数字索引的新元素,但您可以遍历它并使用 'name' 标识符访问它。
  • 如果你这样做,你必须遍历整个数组并测试每个元素以查看名称是否匹配。最好使用名称作为索引。至少,如果您知道名称,您可以直接访问它。
  • 你是对的,然后来自 user3980820 的回答更符合这里的需要 - 问题有点含糊(至少对我来说:))
【解决方案3】:

你不需要像这样只使用两个循环:

$data['name'] = array();

foreach ($get_all_users as $row){                    
            $data['name'][] = $row->name;
}

【讨论】:

    【解决方案4】:

    也许是这样的:

    $data = array_column($get_all_users, 'name');
    

    是你需要的。有点不清楚....

    【讨论】:

      猜你喜欢
      • 2012-05-27
      • 1970-01-01
      • 2020-12-05
      • 2020-06-17
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多