2012-03-18 4 views
0

У меня есть массив строк в PHP, как это:Массив строк в массиве массивов

people = array("John","Kim"); 

Я хочу, чтобы преобразовать каждый из этих строк в самих массивов. В принципе, сейчас я хочу 2-мерный массив как

people(John[],Kim[]); 

Я боролся с реализацией, и я не знаю, как это сделать.

+1

Итак, вы хотите 'array ('John' => array(), 'Kim' => array())'? – Ryan

+0

Что вы хотите, чтобы эти массивы содержали - буквы имени, такие как ['j', 'o', 'h', n ']? –

+0

Итак, у меня будет 4-мерный массив. люди [имена [покупки [номер этой покупки]]]], как и люди [John [couch [2]]]]. Я в основном реализую дерево с использованием массивов. – user1114864

ответ

1
$people = array_fill_keys(array("John","Kim"), array()); 
0

Основываясь на вашем комментарии, вы должны использовать комбинацию клавиш или значений, если вы хотите сделать это с помощью многомерных массивов (что я не уверен, что это лучший способ, но не могу сказать без дальнейших контекст).

$people = array(
    "john" => array() 
    ); 

Затем, когда вы хотите добавить продукты, просто идти, как:

$people["john"]["couch"] = 3; // bought 3 times. 
$people["john"][$item] = 0; // if you don't know the count yet for whatever reason. You can always chagne it later the same way. 

Сейчас:

foreach($people as $person => $purchases){ 
    echo UCFirst($person); 
    if(! empty($purchases)){ 
     echo ' has bought:<br />'; 
     foreach($purchases as $item => $qty){ 
      echo $item.' ('.$qty.')<br />'; 
     } 
    } 
} 

Я бы рекомендовал всегда делать ключи на верхнем или нижнем регистре, если вы собираетесь использовать named. Ваш звонок.

Если вы дадите нам больше кода/контекста, могут быть гораздо лучшие способы сделать это.

+0

У меня в основном есть список людей, и каждый предмет, который они купили, и сколько из этих предметов они купили. Я выводил эту информацию в csv для использования с highcharts.js. Дерево имело наибольшее значение в моей голове, но, пожалуйста, дайте мне знать, есть ли лучший способ. – user1114864

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