Разделение многомерного массива на массивы поменьше

Frey

Новичок
Здравствуйте.

Для использования класса для работы с google charts мне нужно получать массив определенного вида, простейший:

Array ( 'ключ' => 'значение', 'длинастолбца' => 10 )

На входе я получаю массив из базы данных по запросу SELECT * FROM tablename.

Тут есть две проблемы. Во-первых, mysql_fetch_array при использовании print_r на нем выводит информацию только из одного массива, хотя запрошены были все строки, это нормально? Значения всех строк можно получить только через do ... while.

Вторая - вид одной строки-результата запроса примерно такой:
Array ( [0] => name [name] => name [1] => 68 [howmuch] => 68 )

И эту строку мне нужно преобразовать в вид, указанный выше,

Array ( 'ключ' => 'значение', 'длинастолбца' => 10 ).

Я понимаю, что это должно быть очень просто, но никак не могу это сделать ._.
 

hell0w0rd

Продвинутый новичок
выбрось mysql, устаревшее расширение
Возьми safemysql, или на крайний случай и попробуй разобраться с кодом, там это точно есть) Или просто используй, например во втором поделии есть удобный метод fetchCallback, кидаешь туда название функции/замыкание, и парсишь этой функцией данные из базы)
do-while там не к чему, можно простым while или for
 

TheStriker

Новичок
Если я правильно понял то, что вам требуется, то запускаете mysql_fetch_array($result, MYSQL_ASSOC) через удобный Вам цикл и получите требуемый Вам результат
 
  • Like
Реакции: Frey

Denis_Sokolov

Новичок
Лично мне очень нравится вот этот класс:
ссылка

C его помощью Вы сможете легко работать с базой данных. Для Вашего примера код будет следующий:
PHP:
include 'safemysql.class.php';

$db    = new SafeMysql();
$result = $db->getAll('SELECT * FROM tablename');

//Работаем с результатом. Как вариант добавляем значения в массив. Ключами массива $value являются имена столбцов таблицы
foreach($result as $value)
{

    $new_array[] = $value['name']; //Добавили значение name
    $new_array2[] = $value['howmuch']; //Добавили значение howmuch

}

//В результате выполнения примера в массиве $new_array будут все значения name, а в массиве $new_array2 все значения howmuch.
 
  • Like
Реакции: Frey

Frey

Новичок
Всем спасибо, разобрался и с массивами, и с результатами запроса из БД.
 
Сверху