Как получить доступ к значениям 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), вы можете использовать этот код для этого.

Спасибо всем, кто пытался мне помочь!

Другие вопросы по тегам