Я хочу преобразовать приведенное ниже значение
Array
(
[0]=>4,9
)
к этому значению
Array
(
[0]=>4
[1]=>9
)
Применить для каждого цикла в массиве, а затем взорвать запятую. Вы получите свой результат.
ПД Создать массив из списка, разделенного запятыми - PHP / PHP: превратить значения, разделенные запятыми, в массив целых чисел / и т. д.
Можете ли вы объяснить, как вы создали исходный массив? Для меня и первый, и второй массив одинаковы
@NicoHaase выходные данные, скорее всего, являются print_r, поэтому они не совпадают. 3v4l.org/АВФЛИ






Вы можете использовать следующее решение:
<?php
//the current array and an empty new array to get the result.
$cur_array = [0 => "4,9", 1 => "5,9"];
$new_array = [];
//run through all array values to convert these.
for ($i = 0; $i < count($cur_array); $i++) {
//get an array of the comma separated list.
$part = explode(',', $cur_array[$i]);
//add the array of comma separated list to the new array (result).
$new_array = array_merge($new_array, $part);
}
//convert all string values to integer values.
for ($j = 0; $j < count($new_array); $j++) {
$new_array[$j] = intval($new_array[$j]);
}
//output of the new array (debug).
var_dump($new_array);
... или следующее более компактное решение с использованием array_values:
<?php
$oldarr = [0 => "4,9", 1 => "5,9"];
$newarr = [];
foreach (array_values($oldarr) as $arrpart) {
$newarr = array_merge($newarr, explode(',', $arrpart));
}
var_dump($newarr);
Если ваши значения представляют собой десятичные числа, вы можете использовать следующее:
<?php
$oldarr = [0 => 4.9, 1 => 5.9, 2 => 6];
$newarr = [];
foreach (array_values($oldarr) as $arrpart) {
$newarr = array_merge($newarr, explode('.', $arrpart));
}
var_dump($newarr);
@Sheenu, почему этот ответ бесполезен? опиши подробнее, что именно тебе нужно.
@Sheenu Тогда вам, вероятно, следует расширить свой вопрос. «Проверьте мой вопрос» немного сбивает с толку, учитывая, что он содержит так мало усилий и контекста.
$oldarr = [0 => 4,9];
$string = implode(',',$oldarr);
$new_array = explode(',',$string);
print_r($new_array);
Это делается именно так, как вы просите, но вы должны обязательно зацикливаться, как показано @Sebastian Brosch.
Массив ([0]=>4,9)
и какое значение вы принимаете в переменной
@Sheemu - будьте более ясны в своем вопросе!$arr = [0 => 4,9]; - это $arr = [0 => 4, 1 => 9]; (значение, которое вы хотите) - ideone.com/OuUGwU.
Это не работает должным образом: проверьте, что содержит $oldarr в начале. Действительно ли нет содержит то же значение, что и OP
$array = array( 0 => '4,9');
foreach($array as $data){
$commaSeparatedArr = explode(',',$data);
}
print_r($commaSeparatedArr);
Добро пожаловать в СО! Пожалуйста, имейте в виду, что ценность ответов часто является объяснением. Дампы кода менее полезны для будущих посетителей.
Замените значение массива.
$array = ["4,9,7,14", "7,9,68"];
$new_array = [];
foreach($array as $a) {
array_map(function($a_r) {
$new_array[] = (int) $a_r
}, exlpode(",", $a));
}
var_dump($new_array);
/* Output
Array (
[0] => int 4,
[1] => int 9,
[2] => int 7,
[3] => int 14,
[4] => int 7,
[5] => int 9,
[6] => int 68
)
*/
С чего вы взяли, что исходный массив содержит строку?
я думаю, что это правильно, посмотрите новый ответ. Я должен быть рядом с вашими потребностями.
Используйте взрыв и взрыв.
Сначала вы взрываете все значения в массиве с запятыми между ними, а затем взрываете запятую.
$result = explode(",", implode(",", $array));
См. пример: https://3v4l.org/JGOAB
Зейн Фарук, ты знаешь ответ?