#php #arrays
#php #массивы
Вопрос:
У меня есть array $ result следующим образом
Array
( [0] => Array (
[0] => Mr
[1] => vinay
[2] => hs
[3] => tester
[4] =>vinay.hs@abc.com
[5] => 909099
[6] => Yes )
[1] => Array (
[0] => Mr
[1] => Suresh
[2] => Kumar
[3] => tester
[4] => vinay.hs@abc.com
[5] => 809090
[6] => No )
).
Я хочу сохранить этот массив как
Array
([0]=>Array (
[title] => Mr
[firstname] => vinay
[lastname] => hs
[job_title] => tester
[email] =>vinay.hs@abc.com
[phone] => 909099
[is_employed] => Yes )
[1] => Array (
[title] => Mr
[firstname] => Suresh
[lastname] => Kumar
[job_title] => tester
[email] => vinay.hs@abc.com
[phone] => 809090
[is_employed] => No ) ).
Объясните мне, как это сделать
Комментарии:
1. является ли этот массив $result вашим собственным массивом или он возвращен из mysql?
2. @Phelios спрашивает, потому что вы могли бы получить строку с помощью
mysql_fetch_assoc()
.3. В нем есть данные, извлеченные из csv-файла
4. я обновляю ответ, чтобы использовать CSV-файл.
Ответ №1:
$fp = fopen('foo.csv', 'r');
$fields = fgetcsv($fp); // assumes fields are the first row in the file
// or $fields = array('title', 'firstname', 'lastname', 'job_title', 'email', 'phone', 'is_employed');
$records = array();
while ($record = fgetcsv($fp))
{
$records[] = array_combine($fields, $record);
}
Очевидно, что к нему нужно добавить обработку ошибок.
Ответ №2:
$newarray=array();
foreach($result as $res) {
$a = array();
$i = 0;
foreach(array('title','firstname','lastname','job_title','email','phone','is_employed') as $key) {
$a[$key] = $res[$i ];
}
$newarray[] = $a;
}
Комментарии:
1. Это не работает .массив $newarray совпадает с массивом $result
2. Попробуйте прямо сейчас. Это … как $key вместо $key => $ arr
Ответ №3:
$arr = array("title" => "Mr", "title" => "vinay", "key" => "value")
получите к нему доступ с помощью:
$arr["title"]
Комментарии:
1. пожалуйста, объясните мне подробно. я не понял
Ответ №4:
array(
array(
'title' => 'Mr',
'firstname' => 'vinay',
'lastname' => 'hs',
'job_title' => 'tester',
'email' => 'vinay.hs@abc.com',
'phone' => '909099',
'is_employed' => TRUE
),
array(
'title' => 'Mr',
'firstname' => 'Suresh',
'lastname' => 'Kumar',
'job_title' => 'tester',
'email' => 'vinay.hs@abc.com',
'phone' => '809090',
'is_employed' => FALSE
)
);
ОБНОВЛЕНО:
Мой предыдущий ответ был глупым. Если вы загружаетесь из CSV-файла, предполагая, что первым элементом массива являются ключи.
Возможно, вы захотите сделать что-то вроде этого.
Извините за мое неправильное название.
$keysArray = array_shift($arrayFromCSV);
$wantedArrayStructure = array();
foreach ($arrayFromCSV as $person) {
$item = array();
foreach ($person as $key => $value) {
$item[$keysArray[$key]] = $value;
}
$wantedArrayStructure[] = $item;
}
var_dump($wantedArrayStructure);
Ответ №5:
Если, это результат запроса msql. Вы должны использовать функцию, чтобы получить ожидаемый результат: