#php #arrays #function #foreach #echo
#php #массивы #функция #foreach #echo
Вопрос:
Я создал эту функцию, один и тот же результат печатается дважды. Есть идеи, почему? это моя функция? Я не могу найти в этом ничего плохого.
$valid — это массив.
function validOutput($output, $valid, $name, $mirror){
foreach($valid as $e) {
if(strpos($output, $e) != false) {
echo '<br />' . $name . '<br />';
echo '<textarea cols=100 rows=10>';
echo '[tab: Mirror' . $mirror . ']';
echo $output;
echo "</textarea>";
}
}
}
Пожалуйста, скажите мне, если вы видите в этом что-то неправильное, спасибо.
Редактировать:
$valid = array("facebook", "fbcdn", "megavideo", "video", "videoweed", "4shared");
Комментарии:
1. каково содержимое
$valid
?2. из этого кода невозможно узнать, в чем на самом деле проблема, но либо вы вводите ложную информацию в $valid, либо дважды вызываете validOutput()
3. @crayon Violet «дублирующая информация в $ valid», Вот и все. Спасибо.
Ответ №1:
$valid
содержит два элемента, которые являются подстроками $output
Можете ли вы показать несколько примеров входных данных? Может быть, объясните, какова мотивация, стоящая за $valid
параметром?
Комментарии:
1. @jon_darkstar понял это, это было «видео», появляющееся дважды. Спасибо 🙂
2. я все еще не совсем понимаю мотивацию того, что вы делаете, не то чтобы мне это было нужно. вы хотите напечатать это по одному разу для каждого элемента
$valid
, который не является частью$output
? если она делает то, что вы хотите, то это фантастика, я просто не понимаю3. @jon_darkstar Нет, но я хочу печатать материал, содержащий строки из $valid, если это имеет какой-либо смысл.
4. ооо, я неправильно прочитал
!=
это будет сделано, как вы говорите, но в выводе нет никакой части$e
, поэтому он просто будет повторен. выходные данные не будут отличаться друг от друга.5. @jon_darkstar Это в функции while, где $output[$i] 😛
Ответ №2:
Я не знаю, может ли это быть проблемой, но strpos()
должно быть проверено как === false
или !== false
, потому что strpos
может быть 0
, и это будет рассматриваться как false
.
Комментарии:
1. Ах, я вижу, каким-то образом код работает просто отлично. Я все равно это исправлю. Спасибо.