[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Преобразовать массив в строку
amf1k
Есть массив (это для примера - количество полей "title" не известно):

$array = array(
0=>array('title'=>'Название'),
1=>array('title'=>'Название 2')
);


нужно его разбить на строку в виде:

$str = 'Название","Название 2';

Делаю это для того, что бы выбирать в БД SQL определенные название полей "title"

$query = 'SELECT `title` FROM `таблица` WHERE `title` IN ("'.$str.'")';

Может есть ещё какие то идеи по выборке если есть массив $array???
Invis1ble
ну нормальный вариант
кавычки только двойные в запросе на одинарные поменяй

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

vagrand
есть mysql функция group_concat

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Invis1ble
а, я поля в селекте не посмотрел

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

amf1k
Цитата (Invis1ble @ 20.04.2015 - 21:08)
а, я поля в селекте не посмотрел

я не могу поля в массиве преобразовать в строку! есть идея implode и цикл, но я не могу это реализовать, вот и спрашиваю?
Invis1ble
$string = "'" . implode("','", array_map(function ($item) {
return $item['title'];
}, $array)) . "'";


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

amf1k
Цитата (Invis1ble @ 20.04.2015 - 21:50)
$string = "'" . implode("','", array_map(function ($item) {
return $item['title'];
}, $array)) . "'";

намутил вот такой код:


$str = '';
foreach ($array as $value) {
if ( is_array($value) && isset($value['title']) ) {
$str .= '","'.$value['title'];
}
}

echo substr($str,3);


Даже не знаю что будет оптимальней - Ваш код, или мой)
amf1k
Цитата (Invis1ble @ 20.04.2015 - 21:50)
$string = "'" . implode("','", array_map(function ($item) {
return $item['title'];
}, $array)) . "'";

Думаю вот этот код будет самый оптимальный)
foreach ($array as $item) {
$result[] = $item['title'];
}
echo implode('","', $result);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.