|
|
|
| Не знаю как ковычки в сроку добавить
$str2 = implode(",",$array)
У меня получается значение1,значение2, значение3 ну тд.
А как добавить еще одинарные ковычки чтоб было 'значение1','значение2', 'значение3' | |
|
|
|
|
|
|
|
для: Eser
(10.08.2010 в 11:41)
| | Ой сори забыл про поиск
$str2 = "'" . implode("', '", $arr) . "'"; | |
|
|
|
|
|
|
|
для: Eser
(10.08.2010 в 11:41)
| | А ни я ли вам пример кода показывал, где такое делается? Крайние кавычки, а между ними implode с объедением по кавычкам с запятой. | |
|
|
|
|
|
|
|
для: sim5
(10.08.2010 в 11:50)
| | И будет в результате ересь мерзкая.
Что, впрочем, автор и просил. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2010 в 11:55)
| | Я ему показывал ранее иное, почему у него вопрос возник отдельно, и для чего это ему надо, сказать трудно. Если для базы, то да, не едиными кавычками... Но кто же их значет, чего они желают, на чем они гадают, а кто же это знает... ) | |
|
|
|
|
|
|
|
для: sim5
(10.08.2010 в 12:01)
| | да для чего ни плюнь - не отдельными.
Но даже если закрыть глаза на экранирование - в краевом случае пустого массива меняется число объектов. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2010 в 12:06)
| | Что-то я не понял. | |
|
|
|
|
|
|
|
для: sim5
(10.08.2010 в 12:08)
| | ну как
<?php
$a = array();
echo '<pre>';
for($i = 0; $i < 4; $a[] = ++$i)
{
echo '<hr>';
echo "elements:$i<br>\$a:"; var_dump($a); echo '<br>';
$b = implode(',', $a);
echo '$b:'; var_dump($b); echo '<br>';
$c = "'".implode("','", $a)."'";
echo '$c:'; var_dump($c); echo '<br>';
$d = implode(",",
array_map(
create_function('$v',
'{ return("\'".addslashes($v)."\'"); }'
),
$a
)
);
echo '$d:'; var_dump($d); echo '<br>';
}
?>
|
видите на первом шаге какая кака?
elements:0
$a:array(0) {
}
$b:string(0) ""
$c:string(2) "''"
$d:string(0) ""
|
$c показывает наличие одного пустого элемена.
А их нет. Вообще нет.
addslashes я уж так добавил. В качестве последней точки над i . Не в нем дело. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2010 в 12:35)
| | А вот в чем дело, добавление лишних крайных...
<?
$a = array(1,2,3,4,5,6);
$a = "'".implode("','", $a)."'";
echo $a; // '1','2','3','4','5','6'
var_dump($a); // string ''1','2','3','4','5','6'' (length=23)
|
так что все нормально будет. | |
|
|
|
|
|
|
|
для: sim5
(10.08.2010 в 12:43)
| | при пустом массиве всё равно лишние.
собственно, я показал, как надо.
Вариант $d. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2010 в 12:59)
| | А зачем пустой массив объеденять? )
var_dump отображает кавычки по бокам, но они к строке непосредственно отношения не имеют, учитывается длина строки. | |
|
|
|
|
|
|
|
для: sim5
(10.08.2010 в 13:04)
| | >А зачем пустой массив объеденять? )
А это уж вопрос совершенно не имеющий отношения к. :))
Мало ли кому чего и как?
Надежный метод должен работать и в этом случае.
>var_dump отображает кавычки по бокам, но они к строке непосредственно отношения не имеют, учитывается длина строки.
кавычки, укладываемые вокруг implode, вот так, как Вы показали
$a = "'".implode("','", $a)."'";
явно имеют отношение именно к строке. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2010 в 13:12)
| | >А это уж вопрос совершенно не имеющий отношения к. :))
>Мало ли кому чего и как?
Ну если так, тогда.... ))
>Надежный метод должен работать и в этом случае.
Так лично я просто проверю массив и все, вместо написания метода. )
Ну да, кавычки вокруг implode, это к строке, а те что var_dump показывает вокруг еще, они к строке отношения не имеют:
<?
$s = '\'asd\'';
var_dump($s); // string ''asd'' (length=5)
|
| |
|
|
|
|
|
|
|
для: sim5
(10.08.2010 в 13:20)
| |
// <?php
$s = "";
if (!empty($a)) {
$a = array_map("addslashes", $a);
$s = " ' ".implode(" ' , ' ",$a )." ' ";
}
echo $s."<br>\n";
|
| |
|
|
|
|
|
|
|
для: Красная_шляпа
(10.08.2010 в 14:47)
| | Это зачем? Мне этого и даром не нать. ;-) | |
|
|
|