Добрый день столкнулся с проблемой. У меня есть .txt файл, в котором лежат строки с числами, в каждой строке по три числа, всего четыре строки. Я могу сделать из этого файла массив, после чего из каждой строки массива с тремя числами сделать массив, в котором три строки по одному числу. Получается четыре массива в массива. В чём же собственно вопрос. Как применить пользовательскую функцию к каждому из этих четырёх массивов в массиве, чтобы аргументами функции были была эта тройка чисел. То есть чтобы в каждом массиве в массиве были аргументы тех чисел, которые в них находятся.
лихо ты заворачиваешь. напиши плз пример полного массива и напиши, что и с какими элементами нужно делать.
Грубо говоря получается вот такой массив: Array ( [0] => Array ( [0] => 4 [1] => 7 [2] => 23 ) [1] => Array ( [0] => 8 [1] => 12 [2] => 21 ) [2] => Array ( [0] => 3 [1] => 5 [2] => 24 ) ) А применить к нему необходимо следующее: function port($number1, $number2, $number3) { $s = ""; for ($a = 1; $a <= $number3; $a++) { if (($a % $number1 == 0) && ($a % $number2 == 0)) { $s .= "FB "; } elseif ($a % $number1 == 0) { $s .= "F "; } elseif ($a % $number2 == 0) { $s .= "B "; } else { $s .= "$a "; } } return trim($s) . "\n"; Вопрос состоит в том, как передать элементы каждого из массивов в аргументы функции.
Ну так напиши ещё одну функцию, в чём проблема? Код (Text): array_walk($a, function ($e) { port($e[0], $e[1], $e[2]); });
Не мог бы ты объяснить по-подробней? Я только начал изучение данного языка, а раньше не имел дела с другими.
Хах. Было бы печально, если бы всё было так. На самом деле просто пропустил прошлый урок своих курсов по PHP, поэтому пытаюсь понять, как сделать дз.)
foreach вы скорее всего еще не проходили. Если так, то на будущее, имей в виду, что он для массивов лучше. Если я тебя правильно понял, то тебе нужно что-то такое: PHP: //$arr - это твой массив, а твоя функция описана где-то выше. for( $i = 1; $i < count( $arr ); $i++ ) { $res[] = port( $arr[$i][0], $arr[$i][1], $arr[$i][2] ); } // В массив $res сложены значения, которые вернула твоя функция.
@TeslaFeo с цикла for следует вынести функцию count (), иначе перед каждым новым циклом, функция будет снова и снова подсчитывать кол-во элементов в массиве.
Не подскажешь, как соединить этот массив <?php $s = file("D:\USR\LOL\OpenServer\srepts\lip.txt"); function exort($s) { $s = explode(" ",$s); return $s; } $b = array_map("exort", $s); print_r($b); с этой функцией? function port($number1, $number2, $number3) { $s = ""; for ($a = 1; $a <= $number3; $a++) { if (($a % $number1 == 0) && ($a % $number2 == 0)) { $s .= "FB "; } elseif ($a % $number1 == 0) { $s .= "F "; } elseif ($a % $number2 == 0) { $s .= "B "; } else { $s .= "$a "; } } return trim($s) . "\n"; Никак понять не могу...
Ну так почитай то, что я тебе сказал. Мне ввести это за тебя в гугле? Подсказки тебе все дали, тут только за тебя решить. Я правда вообще не врубаюсь, что ты пытаешься получить в итоге