Есть эти синтаксисы:
Для каждого:
$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 (), использованными в описанной выше ситуации. Они одинаковы? Или какая разница? Что я должен использовать и когда?
Для протокола, я знаю небольшие различия и тому подобное. Я просто хочу узнать ваше мнение, и если есть что-то, чего я не знал об этих функциях.
Обычно петли могут быть использованы для выполнения любого действия, которое вы хотите.
Например, вы можете объединить строку с другой зависимой строкой или элементом массива:
$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
потому что вы использовали разделитель пространства
foreach
это оператор цикла implode
это функция. В этом разница. Вы должны использовать foreach
для любого вида операций для каждого элемента в массиве. Но implode
является вспомогательным методом, который связывает элементы данного массива, используя данную строку в качестве связующего.
foreach()
Это цикличная концепция означает, что вы получаете значения одно за другим и печатаете, что вы найдете каждый результат / значение отдельно, в то время как вы не согласовали это.
implode()
: преобразовать массив в строку с использованием клея. и вы получите все значения массива в одну строку.
implode()
также внутренняя итерация массива и преобразование array
в string
петля также делает то же самое здесь,
преимущество петли здесь
1) когда вы хотите условную часть, например
Вы хотите исключить v2
от строки или другой операции зависит от требования
$array=array(1,2,3);
foreach ($array as $value ){
if($value == 2) continue;
echo $value." ";
}
эти вещи не могут применяться в implode
функция
2) В цикле вы можете направить вывод в буфер или добавить в строку. [Это зависит от требований],
import
это единственная функция, которая объединяет значения массива в строку.
как это может быть одинаково, оба используются в разных местах. например
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 () до тех пор, пока он не встретит ложное условие и не выйдет из цикла