Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Преобразовать массив в строку / 11 сообщений из 11, страница 1 из 1
20.04.2015, 19:53
    #38941022
amf1k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
Есть массив (это для примера - количество полей "title" не известно):
Код: php
1.
2.
3.
4.
$array = array(
    0=>array('title'=>'Название'),
    1=>array('title'=>'Название 2')
);


нужно его разбить на строку в виде:
Код: php
1.
$str = 'Название","Название 2';


Делаю это для того, что бы выбирать в БД SQL определенные название полей "title"
Код: php
1.
$query = 'SELECT `title` FROM `таблица` WHERE `title` IN ("'.$str.'")';


Может есть ещё какие то идеи по выборке если есть массив $array???
...
Рейтинг: 0 / 0
20.04.2015, 21:10
    #38941061
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php
$array = array(
    0=>array('title'=>'Название'),
    1=>array('title'=>'Название 2')
);

$func = function($a) {
    return isset($a['title']) ? $a['title'] : '';
};

$in = "'" . implode("','", array_map($func, $array)) . "'";

var_dump($in);
...
Рейтинг: 0 / 0
20.04.2015, 21:46
    #38941080
amf1k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
спасибо за ответ) работает на ура, но я думаю что мой велик работать будет быстрее
Код: php
1.
2.
3.
4.
foreach ($array as $value) {
  $result[] = $value['title'];
}
echo implode('","', $result);
...
Рейтинг: 0 / 0
20.04.2015, 22:03
    #38941093
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
Не знаю и не предположу даже. Протестируйте на производительность, если есть желание. Любопытно взглянуть на результат теста.
...
Рейтинг: 0 / 0
20.04.2015, 22:09
    #38941099
mini.weblab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
еще вариант =)

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?php
// Display Errors:
error_reporting( E_ALL );
ini_set( "display_errors", 1 );

// Code: 
$array = array(
		0=>array('title'=>'Name01'),
		1=>array('title'=>'Name02'),
		2=>array('title'=>'Name03'),
		3=>array('title'=>'Name04'),
		4=>array('title'=>'Name05')
);

$str="";

foreach ($array as $element) {
	$str.= "'".$element['title']."', " ;
}

$str = rtrim($str, ", ");
echo $str;
?>
...
Рейтинг: 0 / 0
20.04.2015, 22:50
    #38941119
amf1k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
vkle,
ваш вариант
Время выполнения скрипта: 5.1975250244141E-5 сек.
мой
Время выполнения скрипта: 1.978874206543E-5 сек.
...
Рейтинг: 0 / 0
20.04.2015, 22:56
    #38941122
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
amf1k,

В общем то, логично. У меня ж ещё дополнительная проверка на вшивость входных значений...
...
Рейтинг: 0 / 0
20.04.2015, 22:59
    #38941126
amf1k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
mini.weblab,
ваш вариант
Время выполнения скрипта: 1.5974044799805E-5 сек.
мой
Время выполнения скрипта: 1.6927719116211E-5 сек.
...
Рейтинг: 0 / 0
21.04.2015, 08:27
    #38941228
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
amf1kmini.weblab,
ваш вариант
Время выполнения скрипта: 1.5974044799805E-5 сек.
мой
Время выполнения скрипта: 1.6927719116211E-5 сек.

не правильно меряешь. у тебя при запуске скрипта могло нагрузиться что-то изза чего притормозились другие процесессы, и после старта другие активной работой притормозили пхп. я к тому, что стороние процессы куда больше влияют на замеряное время чем сам код.

вот раз запустил, увидел что -5 степень 10, вот сделай тот же текст только 1000 000 циклов...время будет чтото около 15 секунд. вот это уже больше будет похоже на замер. (ну или 100 000, полторы секунды времени)
...
Рейтинг: 0 / 0
21.04.2015, 09:59
    #38941302
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
[quot amf1k]vkle,
будет есчё быстрее, если всетаки из первого варианта взять идею создания масива а потом имплоуд, чем стразу строку лепить.



========
но самый медленный элемент сдесь, это ТС. хочешь быстро, раскажи людям что ты изначально хотел, ибо способ решения явно убийственный
...
Рейтинг: 0 / 0
21.04.2015, 10:02
    #38941308
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать массив в строку
а еще в php 5.5 есть array_column
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Преобразовать массив в строку / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]