2014-09-29 3 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

У меня нет вашей точки. Является ли yoy попыткой заполнить массив внутри foreach? Вы попробовали 'array_push()'? – bodruk

+1

Очень возможно построить массив в цикле foreach, но я понятия не имею, о чем вы просите. Не могли бы вы попытаться изменить свое сообщение, четко указав свою цель и свой вопрос? –

+0

Будьте осторожны с назначением и равенством. $ name [$ i] = $ row-> name; просто потому, что он в эхо не означает, что он не будет назначать. – Hammerstein

ответ

2

UPDATE Присутствовавший свой комментарий ...

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

, но я должен использовать вот так: $ data ['name'] , потому что я хочу получить доступ для $ name Я использую codeigniter. –

+0

@vahidnajafi Вам нужен массив имен внутри '$ data ['name']'? – bodruk

+0

@vahidnajafi Проверьте мое обновление! – bodruk

1

Вам просто нужно определить пустой массив, а затем поместить в него значения с пустым «индексом».

Что-то вроде этого:

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

, но я должен использовать как thie: $ data ['name'] , потому что я хочу получить доступ для $ name Я использую codeigniter –

+0

@vahidnajafi, так что используйте это? Он не меняет ответ – eis

+0

Вы можете использовать $ names [] ['name'] - это создаст новый элемент с числовым индексом, но вы сможете перебирать его и обращаться к нему с идентификатором 'name'. – daxur

1

вам не нужно использовать две петли только один, как это:

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

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

Возможно, это:

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

- это то, что вам нужно. Это немного неясно ....

+0

Спасибо большое :) –

Смежные вопросы