имеем PHP: function test ($data) ... return - все что угодно но надо вывести 2 значения - возвращаем массив ? дальше надо заполнить массив PHP: $data = array ( "column1" => "просто текст", "column2" => test ("фраза которую функция обрабатывает")[0], "column3" => test ("фраза которую функция обрабатывает")[1], 2 раза функцию гонять чтото не хочется .. использовать через переменную вот так пустить "column2" => ($peremen = test ("фраза которую функция обрабатывает"))[0], //интересно а сработает ли так .. сейчас буду пробовать "column3" => $peremen[1] какие еще есть варианты ? --- Добавлено --- не сработало ... --- Добавлено --- пока переменную $peremen создаю перед подачей в массив ..
А почему функцию не гонять два или более раз? Она ведь по сути и создана для того, чтобы использовать её много раз, но при этом не переписывать одинаковые куски кода по сто раз. Или у тебя текст один и тот же везде?
на входе там идет такой текст - ( это я из экселя конверташку делаю в БД ) "№ документа от <дата>" на выходе получаю $arr[0] - номер документа $arr[1] - дата документа эм.. вот тут даже не знаю что ответить это вобшето массив =))
То есть тебе из строки нужно получить номер документа и дату? PHP: $text = "№20500 от 12.02.2017"; $param = explode(" от ", $text); echo $param[0]; //Получаем "№20500" echo $param[1]; //Получаем "12.02.2017" Так нельзя?
сама функция у меня уже есть =) там не все так просто как с виду кажется =) я тоже сначала думал просто эксплоидом пойти... а потом когда данные посмотрел .. еще посмотрел и пошел регулярками
PHP: $data = array_merge(array ("просто текст","еще текст"), test("фраза которую функция обрабатывает")); Если у тебя все ключи это просто columnN, где N - номер, то руками прописывать ключи нет смысла. А еще можно записать так: PHP: $data = array_merge(["просто текст","еще текст"], test("фраза которую функция обрабатывает")); Мне так больше нравится --- Добавлено --- Да, у array_merge нет предела по количеству параметров. Так тоже можно: PHP: $data = array_merge(["просто текст","еще текст"], test("фраза которую функция обрабатывает"), test("фраза2 которую функция обрабатывает"), test("фраза3 которую функция обрабатывает"), test("фраза4 которую функция обрабатывает"));
А, я понял! У тебя функция возвращает массив? С телефона не очень удобно читать было =) Так, а чем плохо вызвать функцию один раз перед добавлением в массив?
Тем, что количество элементов, которое будет возвращено, может меняться, и нужно решение, которое не надо потом переписывать руками при каждом чихе?
ммммм с мерге может и получится.. - завтра попробую наверное будет чтото такое ( у меня именованые - для pdo =)) PHP: $data = array_merge($data,test("фраза которую функция обрабатывает")) а функция будет возвращать именованый массив ..с нужными параметрами пасиб
Никто не мешает именования пробить потом. --- Добавлено --- Ну в таком случае и ключи будут там, где надо, да. Главное, чтобы они не пересекались.