2014-09-29 23 views
1

在下面的代码中,重复的foreach是未知的。它取决于数据库记录。如何在PHP中动态创建数组?

<?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], 
); 

非常感谢你。

+0

我没有明白你的观点。同意试图在foreach中填充数组吗?你尝试'array_push()'? – bodruk 2014-09-29 19:05:20

+1

在foreach循环中构建数组是很有可能的,但我不知道你在问什么。你能否试着重写你的文章,明确说明你的目标和你的问题? – 2014-09-29 19:08:06

+0

小心你的任务和平等。 $ name [$ i] = $ row-> name;只是因为它在回声中并不意味着它不会分配。 – Hammerstein 2014-09-29 19:08:55

回答

2

UPDATE 参加您的评论...

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

,但我必须这样使用:$ data ['name'] ,因为我想在$ name的名称 我使用codeigniter。 – 2014-09-29 19:12:33

+0

@vahidnajafi你需要一个名称数组,在'$ data ['name']'里面吗? – bodruk 2014-09-29 19:14:46

+0

@vahidnajafi检查我的更新! – bodruk 2014-09-29 19:18:54

1

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

事情是这样的:

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

但我必须使用像thie:$ data ['名称'] ,因为我想鉴于美元名称 我使用codeigniter – 2014-09-29 19:11:01

+0

@vahidnajafi所以使用?它不会改变答案 – eis 2014-09-29 19:12:44

+0

您可以使用$ names [] ['name'] - 这将创建带有数字索引的新元素,但您可以遍历它并使用'name'标识符访问它。 – daxur 2014-09-29 19:16:21

1

你不需要使用两个回路只有一个这样的:

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

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

或许这样:

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

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

+0

非常感谢你:) – 2014-09-29 20:51:25