|
|
|
| здравствуйте
подскажите пожалуйста, как из
[6] => Array
(
[0] => 37
[id] => 37
[1] => Контакты
[title] =>
[2] =>
)
[7] => Array
(
[0] => 38
[id] => 38
[1] => О проекте
[title] => aaaa
[2] => aaaa
)
[8] => Array
(
[0] => 38
[id] => 38
[1] => О проекте
[title] => bbb
[2] => bbb
)
|
сделать
[6] => Array
(
[0] => 37
[id] => 37
[1] => Контакты
[title] =>
[2] =>
)
[7] => Array
(
[0] => 38
[id] => 38
[1] => О проекте
[title] => array(
[0] =>aaaa
[1] => bbb
)
[2] => array(
[0] =>aaaa
[1] => bbb
)
)
|
| |
|
|
|
|
|
|
|
для: moonfox
(27.09.2015 в 04:05)
| | Вложенный цикл? | |
|
|
|
|
|
|
|
для: elenaki
(27.09.2015 в 08:53)
| | как сопоставить принадлежность? | |
|
|
|
|
|
|
|
для: moonfox
(27.09.2015 в 04:05)
| | Для начала не использовать mysql_fetch_array() | |
|
|
|
|
|
|
|
для: confirm
(27.09.2015 в 13:25)
| | а есть ли разница
mysql_fetch_assoc / mysql_fetch_row
и
mysql_fetch_array с (MYSQL_ASSOC / MYSQL_NUM) | |
|
|
|
|
|
|
|
для: moonfox
(27.09.2015 в 18:10)
| | А стоило ли задавать такой вопрос после этого?
[0] => 38
[id] => 38
[1] => О проекте
[title] => aaaa
[2] => aaaa
Это называется - с дури взять все, что даже и негоже. | |
|
|
|
|
|
|
|
для: confirm
(27.09.2015 в 19:16)
| | ну.....
1. вопрос был изначально лишь о том, как сгруппировать массив из примера и только
2. я уточнил по ходу, есть ли разница между параметром для fetch_array, указывающий на тип массива и ф-ми, предназначенными для этих массивов (ассоциативного и нумерованного)
ответить можно?)))) | |
|
|
|
|
|
|
|
для: moonfox
(27.09.2015 в 19:28)
| | Чего вы уточнили? Рассуждения по поводу разницы? А как вы думаете есть она или нет?
Вы, как говорится, с дури хапнули все, а потом ставите вопрос как из... получить.... Ну ежику же понятно, что коли хотим работать с массивом, то мы должны знать что имеем в нем - индексы или ключи. А вы посмотрите на кашу своего массива - есть дубликаты данных, индексы и ключи, есть и в гордом одиночестве - только под индексом.
А если есть порядок, то операция простая:
- можно получить пересечением массива по значениям, после чего по ключам/индексам из исходного массива взять только то, что нужно
- нужно к полученному добавить элементы, значит получаем только необходимые элементы по ключам. В версии 5.5.0 и выше это можно сделать функцией array_column(), в версии ниже пользовательским ее аналогом:
<?
if(!function_exists("array_column")) {
function array_column(array $array, $column_key, $index_key=null) {
$a = array();
array_map(function($e) use(&$a, $column_key, $index_key) {
$index_key ? $a[$e[$index_key]] = $e[$column_key] : $a[] = $e[$column_key];
}, $array);
return $a;
}
}
|
- функцией array_map() с первым параметром равным null можно из наборов-массивов создать массив массивов.
Кроме того, функции пересечения массивов могут помочь отсортировать массив по заданным ключам/индексам. | |
|
|
|
|
|
|
|
для: confirm
(27.09.2015 в 23:06)
| |
А как вы думаете есть она или нет?
|
риторический вопрос,
давайте иначе,
ваш совет fetch_array со вторым параметром или же assoc/num_rows? | |
|
|
|
|
|
|
|
для: moonfox
(28.09.2015 в 00:26)
| | Меньше риторики и больше по потребности. Ведь суть не в том получить массив функций ли fetch_array с параметром нужным или же одной из fetch_xxx, а в том, что нужно получать тот тип массива данных, который нам более удобен в конкретном случае. А уж чем вы его получите это не важно.
А что если получая так массив, как у вас в примере, вы будете загребать и BLOB данные приличного размера? Надо же отдавать себе отчет, что делаем. И не только на массивах индексных или ассоциативных свет клином сошелся, если не предполагается работа с функциями обработки массива, может быть удобнее получать объекты mysql_fetch_object(), что упрощает в написании код при обращении к элементам ряда. Если вывод ресурса это простой вывод данных в таблицу, то не важно под ключами или индексами вернулся результат, ибо будет простая операция implode("тег_ячейки", array_map("htmlspecialchars", массив)). Есть и другие наборы, например FETCH_KEY_PAIR в PDO вернет массив в котором ключами будут значения первого поля запроса, а значениями значения второго поля запроса (аналогично работе функции array_column с указанием третьего параметра).
А получать строки из ресурса скопом потому, что fetch_array() и хватит, это не думать. А такая выборка тоже нужна в некоторых ситуациях, если знать о разнице результата объединения ассоциативных и индексных массивов. | |
|
|
|