Это - вероятно, простой вопрос для Вас php свисты там, но я, может казаться, не нахожу ответ в Google!
У меня есть многомерный массив, каким первым набором ключей названы, и я хочу изменить их в числа как 0, 1, 2..
Если бы это был нормальный массив, то я мог бы установить $newArray = array_values ($multiArr); и это избавилось бы от ключей и сделало бы их числовыми! Но так как его многомерным там является другой набор ключей/значений под этим.
Я мог так или иначе использовать цикл, чтобы циклично выполниться через него и определить каждого? Но затем как я указал бы текущий ключ?
Любой совет помог бы спасибо!
Если это помогает во всех входящих данных, JSON, полученный от устройства и существует что-то не так с кодированием, таким образом, данные похожи на это:
`Array ( [�w� ��߯19�] => Array ( [down] => 1279146141431 [up] => 1279146351453 ) `
Таким образом, я должен так или иначе получить доступ к данным под каждым сумасшедшим ключом.
Этот код:
$arr = array(
'a' => array('a' => '1', 'b' => '2', 'c' => '3'),
'b' => array('d' => '4', 'e' => '5', 'f' => '6'),
'c' => array('g' => '7', 'h' => '8', 'i' => '9'),
);
$arr2 = array_values($arr);
выдает $arr2 в таком виде:
[0] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
[1] => Array
(
[d] => 4
[e] => 5
[f] => 6
)
[2] => Array
(
[g] => 7
[h] => 8
[i] => 9
)
Разве это не то, что вы пытаетесь получить?
Я не совсем понял структуру вашего массива, но вы можете выполнять итерацию по многомерному ассоциативному массиву несколькими способами. Вот тот, который создает массив с числовым индексом:
$multiArray = Array(/* stuff */);
$numericArray = Array();
foreach ($multiArray as $key => $val) {
foreach ($val as $childKey => $childVal) {
// do something else?
}
$numericArray []= $val;
}
Небольшая рекурсия делает свое дело
$data = array(
'foo' => 'bar'
, 'bar' => 'baz'
, 'baz' => array(
'foo' => 'bar'
, 'bar' => 'baz'
, 'baz' => array(
'foo' => 'bar'
, 'bar' => 'baz'
, 'baz' => 'foo'
)
)
, 'foo2' => 'bar'
, 'bar2' => 'baz'
, 'baz2' => array(
'foo' => 'bar'
, 'bar' => 'baz'
, 'baz' => 'foo'
)
);
print_r( $data );
$data = removeKeys( $data );
print_r( $data );
function removeKeys( array $array )
{
$array = array_values( $array );
foreach ( $array as &$value )
{
if ( is_array( $value ) )
{
$value = removeKeys( $value );
}
}
return $array;
}