Implode () против Foreach ()

Есть эти синтаксисы:
Для каждого:

$array=array('v1','v2','v3');
foreach( $array as $value ){
echo $value;
}

Выход:

v1v2v3

Implode:

$array=array('v1','v2','v3');
$value=implode(" ",$array);
echo $value;

Выход:

v1 v2 v3

Мне нужна помощь в понимании различий между implode () и foreach (), использованными в описанной выше ситуации. Они одинаковы? Или какая разница? Что я должен использовать и когда?

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

1

Решение

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

Например, вы можете объединить строку с другой зависимой строкой или элементом массива:

$array=array('v1','v2','v3');
foreach ($array as $value) {
if ($value == 'v1') {
echo $value.' something';
}
else {
echo $value.' something2';
}
}

и если у вас есть числа в вашем массиве, вы можете выполнять математические операции:

$array=array(1,2,3);
foreach ($array as $value) {
echo ($value + 5).' ';
}

Вы также можете изменить элементы массива:

$array=array(1,2,3);
foreach ($array as &$value) {
$value += 3;
}
unset($value);
foreach ($array as $value ){
echo $value.' ';
}
// result: 4 5 6

Implode это просто функция, которая объединяет элементы массива и помещает разделитель между ними. Ничего более. Это не меняет элементы массива. Он просто возвращает строку вывода. Обычно используется для подготовки данных для отображения.

Также implode гораздо удобнее ставить сплиттер между элементами. В цикле, если вы хотите поместить пробел между всеми элементами, но вам не нужно ставить пробел после последнего элемента, вам нужно сделать дополнительные проверки для последнего элемента и использовать implode вам не нужно заботиться, потому что implode просто делает это для вас.

И в вашем случае вывод не будет таким же, потому что ваш цикл будет выводить:
v1v2v3 и взорвется будет выводить v1 v2 v3 потому что вы использовали разделитель пространства

4

Другие решения

foreach это оператор цикла implode это функция. В этом разница. Вы должны использовать foreach для любого вида операций для каждого элемента в массиве. Но implode является вспомогательным методом, который связывает элементы данного массива, используя данную строку в качестве связующего.

3

foreach() Это цикличная концепция означает, что вы получаете значения одно за другим и печатаете, что вы найдете каждый результат / значение отдельно, в то время как вы не согласовали это.

implode() : преобразовать массив в строку с использованием клея. и вы получите все значения массива в одну строку.

1

implode() также внутренняя итерация массива и преобразование array в string

петля также делает то же самое здесь,

преимущество петли здесь

1) когда вы хотите условную часть, например
Вы хотите исключить v2 от строки или другой операции зависит от требования

$array=array(1,2,3);
foreach ($array as $value ){
if($value == 2) continue;
echo $value." ";
}

эти вещи не могут применяться в implode функция

2) В цикле вы можете направить вывод в буфер или добавить в строку. [Это зависит от требований],

import это единственная функция, которая объединяет значения массива в строку.

1

как это может быть одинаково, оба используются в разных местах. например

list($y,$m,$d)=explode("-",$query); //separating and storing in variable `y-m-d`
$arr=array($m,$d);
$cat=implode('-',$arr); //u got that format again with only two variables

взорвать ожидает массив.

где foreach — это цикл, который перебирает заданный array () до тех пор, пока он не встретит ложное условие и не выйдет из цикла

0
По вопросам рекламы [email protected]