Мне необходимо перед значениями всех ассоциативных ключей которые приходят, добавить строковое значение(название папки -"HugeImages/") отрывок кода: PHP: $row2['PICTURE_HUGE'] = "HugeImages/".$row2['PICTURE_HUGE']; $row2['PICTURE_HUGE'] = explode(",", $row2['PICTURE_HUGE']); получаемый результат приходящего ассоц. массива : PHP: [PICTURE_HUGE] => Array ( [0] => HugeImages/h_G1111.jpg [1] => h_G1113.jpg [2] => h_G1114.jpg [3] => h_G1115.jpg ) и он ставит только первому ключу(нулевому), а остальным нет. Подскажите как можно реализовать, чтобы всем подставлялось?
спасибо, прочитал, прописал, но он ругается код: PHP: function huge($n) { $n = "huge/"; return($n); } ....... PHP: $arrMap = $row2['PICTURE_HUGE']; $row2['PICTURE_HUGE'] = array_map("huge", $arrMap); $row2['PICTURE_HUGE'] = explode(",", $row2['PICTURE_HUGE']); выдает ошибку: Array_map (): Аргумент # 2 должен быть массивом в строке- $row2['PICTURE_HUGE'] = array_map("huge", $arrMap); хотя второму аргументу и так присвоен массив. Хз, что-то не пойму.
@AlexsaiL, верь php, он твой друг. У тебя $row2['PICTURE_HUGE'] становится массивом на одну строку ниже, чем ты его передаёшь array_map. Или ты тоже из тех, кто думает, что php исполняет программу, как арабы читают свой язык: снизу вверх?
ты хочешь сказать что так правильнее? PHP: $row2['PICTURE_HUGE'] = explode(",", $row2['PICTURE_HUGE']); $arrMap = $row2['PICTURE_HUGE']; $row2['PICTURE_HUGE'] = var_dump(array_map("huge", $arrMap));
Немного. Но вот тебе сказали про var_dump, можно в гугле её ввести, прежде чем использовать, если не знаешь, что это такое? Или обязательно чушь какую-то морозить?..
почитал на форуме, посмотрел что она творит, выводит на страницу свойства ключей, ну не думаю что ее можно тут применить
ну прочитал, заодно проверил что она творит, зато ознакомился) --- Добавлено --- а ты знаешь каким методом можно всем свойствам ключа поставить в начале строковое значение(название папки)?
PHP: <?php $row2 = ['PICTURE_HUGE' => '0,1,2,3,4,5,6,7,8,9']; $row2['PICTURE_HUGE'] = explode(",", $row2['PICTURE_HUGE']); function addstr($str) { return '/'.$str; } $new = array_map('addstr', $row2['PICTURE_HUGE']); var_dump($new);
Спасибо), я заменил => '0,1,2,3,4,5,6,7,8,9']; на свои данные с бд. Выводит var_dump($new); результат в браузер как надо, но появляется ошибка дополнительно: Fatal error: Cannot redeclare addstr() (previously declared in C:\OpenServer\..... (Невозможно переопределить addstr () (ранее объявленный в C: \ OpenServer \ ......) указывает строку с function addstr($str) {
Я как понимаю она ругается на то что функцию внутри цикла объявили? выношу отдельно из цикла и функции отдельно, отладка пустая приходит...
Ну. Ты даже перевёл же ошибку. Значит у тебя этот файл несколько раз подключается, и каждый раз php видит объявление функции. Решения 4: 1. Вынести функцию в отдельный файл, подключать require_once 2. Подключать этот файл require_once 3. Сделать проверку if (function_exists()) 4. Заменить именованную функцию анонимной: http://php.net/manual/ru/functions.anonymous.php
Вынес функцию в отдельный файл PHP: <?php function addstr($str) { return 'huge/'.$str; } подключил файл: PHP: require_once '../models/addstr.php'; сделал проверку выдает: PHP: addstr функции доступны.
https://secure.php.net/manual/ru/functions.anonymous.php PHP: $new = array_map(function ($str) { return '/'.$str; }, $row2['PICTURE_HUGE']);
Ден, Благодарю! все прописал, нашел у себя еще одну ошибку - исправил, после чего все заработало!) --- Добавлено --- Всем спасибо за помощь!) разобрался что к чему!)