2015-04-04 1 views
1

Переменная является результатом этого цикла foreach, но когда я его печатаю, мне нужен только один массив, а не несколько массивов.Как отделить несколько массивов в моей переменной php?

Foreach Код Loop:

foreach ($finalpagesID as $value) { 
    $IDjsonPage = json_decode(
     file_get_contents($pageURL.$value['id']), TRUE 
    );  
    $IDvar = array(
     'name' => $IDjsonPage["name"], 
     'X' => $IDjsonPage["X"], 
     'Y' => $IDjsonPage["Y"], 
     'Z' => $IDjsonPage["Z"] 
    ); 

    print_r ($IDvar); 
}; 

Результаты:

Array ([name] => 1905 Restaurant [X] => 5869 [Y] => 1299 [Z] => 43) 
Array ([name] => 15 Ria [X] => 0 [Y] => 0 [Z] => 0) 
Array ([name] => 18th Amendment LLC [X] => 3384 [Y] => 111 [Z] => 1) 
Array ([name] => 1920dc [X] => 0 [Y] => 0 [Z] => 0) 
Array ([name] => 19th St Pub [X] => 1 [Y] => 0 [Z] => 0) 
Array ([name] => 2 Birds 1 Stone [X] => 1884 [Y] => 603 [Z] => 37) 
Array ([name] => Bar 201 [X] => 30 [Y] => 0 [Z] => 0) 
Array ([name] => 51st State Tavern [X] => 3944 [Y] => 365 [Z] => 20) 
+0

Каким будет ожидаемый результат? – Rizier123

+0

Мне нужно что-то подобное, что я могу конвертировать в JSON. Array ([1] ([name] => 1905 Restaurant [X] => 5869 [Y] => 1299 [Z] => 43) [2] [[name] => 15 Ria [X] => 0 [ Y] => 0 [Z] => 0) [3] ([name] => 18-я поправка LLC [X] => 3384 [Y] => 111 [Z] => 1) – Mdude

+0

Я немного изменил ваш вопрос , разбивая длинные строки на отдельные строки. Это облегчит людям чтение вашего кода и поможет вам получить ответ. Удачи с вашим проектом! – mhall

ответ

0

Поправьте меня, если я ошибаюсь, но я думаю, что вы на самом деле хотите несколько массивов. В один массив. Что-то вроде:

$IDvar = array(); 
foreach ($finalpagesID as $value) { 

    $IDjsonPage = json_decode(file_get_contents($pageURL.$value['id']),TRUE); 

    $IDvar[] = array('name'=>$IDjsonPage["name"],'X'=>$IDjsonPage["X"],'Y'=>$IDjsonPage["Y"],'Z'=>$IDjsonPage["Z"]); 

} 
print_r ($IDvar); 

Или, может быть:

$IDvar = array(); 
foreach ($finalpagesID as $value) { 

    $IDjsonPage = json_decode(file_get_contents($pageURL.$value['id']),TRUE); 

    $IDvar[$IDjsonPage["name"]] = array('X'=>$IDjsonPage["X"],'Y'=>$IDjsonPage["Y"],'Z'=>$IDjsonPage["Z"]); 

} 
print_r ($IDvar); 

Или, может быть:

$IDvar = array(); 
foreach ($finalpagesID as $value) { 

    $IDjsonPage = json_decode(file_get_contents($pageURL.$value['id']),TRUE); 

    $IDvar[$IDjsonPage["X"]][$IDjsonPage["Y"]][$IDjsonPage["Z"]] = $IDjsonPage["name"]; 

} 
print_r ($IDvar); 

(судя по вашему комментарию, первое предложенное решение будет тот, который вы хотите перейти с, хотя индекс первого элемента будет 0, а не 1, потому что в массивах PHP используется zero based numbering)

+0

* хочет несколько массивов. В один массив * Он называется многомерным массивом – Rizier123

+0

Да, спасибо, что освободил это ;-) – NotGaeL

+0

(Хотя я являюсь MSc. Мне нравится резервировать эту номенклатуру для | N <-> | N массивов, чтобы избежать конфликта с понятием ранга, измерения или размерность в линейной алгебре, которая может возникнуть как немного педант, но на самом деле она избегает много путаницы в лаборатории при работе с выбором/извлечением признаков в контексте уменьшения размерности для системных алгоритмов рекомендаций и применяемых дискретных алгоритмов линейной регрессии в целом) – NotGaeL

0

array_push() создаст многомерную матрицу с индексом для каждого «push»

$IDvar = array(); 

foreach ($finalpagesID as $value) 
{ 
    $IDjsonPage = json_decode(file_get_contents($pageURL.$value['id']),TRUE);  
    array_push($IDvar, array('name'=>$IDjsonPage["name"],'X'=>$IDjsonPage["X"],'Y'=>$IDjsonPage["Y"],'Z'=>$IDjsonPage["Z"])); 
}; 
print_r ($IDvar); 
+0

пока не работает. Он по-прежнему разделяет каждую итерацию в цикле на отдельный массив. – Mdude