разбить содержимое массива на другой массив Переполнение стека

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

Тем не менее, мой новый массив неверен. Один индекс должен содержать все имена в 1 строку
другой индекс со всеми телефонными номерами … и т. д.

мой показывает как на картинке

Какие-либо предложения? картинка кода также прилагается

так что это новый массив

это код

<pre>
<?php
$fileName = "c:/wamp/www/datebook";

$line = file($fileName);

print_r($line);

foreach($line as $value)
{
$newLine[] = explode(":",$value);

}

print_r($newLine);
?>
</pre>

это маленький кусок, их всего 26 .. вот из блокнота

Jon DeLoach:408-253-3122:123 Park St., San Jose, CA 04086:7/25/53:85100
Sir Lancelot:837-835-8257:474 Camelot Boulevard, Bath, WY 28356:5/13/69:24500
Jesse Neal:408-233-8971:45 Rose Terrace, San Francisco, CA 92303:2/3/36:25000

0

Решение

    <?php
$fileName = "c:/wamp/www/datebook";

$line = file($fileName);

$newLine= array();
foreach($line as $va)
{
$new = explode(":",$va);
$newLine['name'][] = $new[0];
$newLine['phone'][] = $new[1];
$newLine['etc'][] = $new[2];
}
echo "<pre>";
print_r($newLine);
?>

Это будет вывод

Array
(
[name] => Array
(
[0] => Jon DeLoach
[1] => Joo Del
)

[phone] => Array
(
[0] => 408-253-3122
[1] => 408-253-3122
)

[etc] => Array
(
[0] => 7/25/53
[1] => 7/25/53
)

)
1

Другие решения

Вы можете попробовать это —

// The indexes to be set to new array [Currently I am assuming, You can change accordingly]
$indexes= array(
'Name' , 'Phone', 'Address', 'Date', 'Value'
);

$new = array();
// Loop through the indexes array
foreach($indexes as $key => $index) {
// extract column data & implode them with [,]
$new[$index] = implode(', ', array_column($newline, $key));
}

array_column поддерживается PHP> = 5.5

пример

1

Вам нужно добавить их в свои массивы.

$line = explode("\n", $s);

$newLine = array('name' => '','phone' => ''); // add the rest of the columns.....address,etc
foreach($line as $value)
{
list($name,$phone,$address,$date,$postcode) = explode(":",$value);

$newLine['name'] .= (empty($newLine['name'])? $name : " ". $name);
$newLine['phone'] .= (empty($newLine['phone'])? $phone : " ". $phone);
// etc
}

И это добавит их соответственно.

пример (просто нажмите ctrl + enter запустить его)

И он возвращает ассоциативный массив, который выглядит следующим образом:

Array
(
[0] => Array
(
[name] => Jon DeLoach
[phone] => 408-253-3122
[address] => 123 Park St., San Jose, CA 04086
)

[1] => Array
(
[name] => Sir Lancelot
[phone] => 837-835-8257
[address] => 474 Camelot Boulevard, Bath, WY 28356
)

[2] => Array
(
[name] => Jesse Neal
[phone] => 408-233-8971
[address] => 45 Rose Terrace, San Francisco, CA 92303
)

)
0
По вопросам рекламы [email protected]