Как получить доступ к значениям PHP в массиве, таких как ["val1","val2","val3"] в цикле
У меня есть проблема, чтобы получить значения из одного массива квадратных скобок. Получать это
//$_POST["values"] == ["val1","val2","val3"]
$val = $_POST["values"];
Я хочу что-то вроде:
foreach( $val as $value ) {
$valget = $value;
//need to get all values like $valget = "val1";
}
Большое спасибо!
ОБНОВИТЬ:
Что я пытаюсь получить? Значения передаются как $_POST из файлового менеджера
Как я хочу продолжить? Я хочу, чтобы каждый результат записи сохранялся в базе данных.
И все же сохраняя все как массив в базу данных в одну строку, мне нужно для каждой записи новую строку.
2 ответа
Итак, это ваш вар со всеми $_POST
ценности:
$val = $_POST["values"];
Это то что ты делаешь:
foreach($val as $value) {
$valget = $value;
}
Так каждый раз $valget
будет стерто к следующему $value
// First loop : $valget == "val1"
// Second loop : $valget == "val2"
// Third loop : $valget == "val3"
Так что в конце концов, если вы делаете echo $valget;
у вас будет последний результат: $valget == "val3"
Если вы хотите получить каждый, вот какое-то решение:
1 / Эхо каждого значения:
foreach($val as $value) {
echo $value . "<br>";
}
Таким образом, вы будете выводить
val1
val2
val3
2/ Ничего не делать с тех пор $val
это уже массив со всеми значениями:
$val = $_POST["values"];
$val = array(
0 => "val1",
1 => "val2",
2 => "val3"
);
Таким образом, вы можете получить доступ к каждому значению с помощью:
$val[0] == "val1";
$val[1] == "val2";
$val[2] == "val3";
3 / Измените ключ, если вы хотите найти их другим способом:
// New array
$valget = array();
// Create a new index
$index = 1;
foreach($val as $value) {
$valget[$index] = $value;
$index++;
}
Таким образом, вы будете иметь:
$valget[1] == "val1";
$valget[2] == "val2";
$valget[3] == "val3";
Хорошо понял! Теперь я хочу поделиться с миром ответом, потому что может быть кто-то еще столкнется с той же проблемой, что и я.
После всего, что я пробовал, только работа была:
$numbers = json_decode($_POST['file_img']); //post images from <form> and decode array
foreach($numbers as $index => &$number){
++$number; # we are incrementing the original value
echo 'Inside of the array = ', $index, ': ', $number, '<br />'; # this is showing the original value
so now $number = "every single image";
Now save to db or whatever..
}
Этот ответ был найден здесь: /questions/41919074/kak-na-samom-dele-rabotaet-php-foreach/41919085#41919085
Поэтому, если кому-то потребуется передать переменные из автономного responseivefilemanager в PHP так, как мне нужно ( http://www.responsivefilemanager.com/demo.php), вы можете использовать этот код для этого.
Спасибо всем, кто пытался мне помочь!