powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Преобразовать массив в строку
11 сообщений из 11, страница 1 из 1
Преобразовать массив в строку
    #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
Преобразовать массив в строку
    #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
Преобразовать массив в строку
    #38941080
amf1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за ответ) работает на ура, но я думаю что мой велик работать будет быстрее
Код: php
1.
2.
3.
4.
foreach ($array as $value) {
  $result[] = $value['title'];
}
echo implode('","', $result);
...
Рейтинг: 0 / 0
Преобразовать массив в строку
    #38941093
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю и не предположу даже. Протестируйте на производительность, если есть желание. Любопытно взглянуть на результат теста.
...
Рейтинг: 0 / 0
Преобразовать массив в строку
    #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
Преобразовать массив в строку
    #38941119
amf1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,
ваш вариант
Время выполнения скрипта: 5.1975250244141E-5 сек.
мой
Время выполнения скрипта: 1.978874206543E-5 сек.
...
Рейтинг: 0 / 0
Преобразовать массив в строку
    #38941122
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amf1k,

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

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

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



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


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