2015-07-29 2 views
0

Это мой старый массив.Как установить индексный ключ автоматически в многомерном массиве

$oldarray = Array 
    (
     [0] => http://test.to/getac/l4p0y6ziqt9h 
     [mock] => stdClass Object 
      (
       [0] => http://test.to/getae/vidzichawal1 
       [1] => http://test.to/getae/vidzi6 
       [4] => http://test.to/getae/1x5fbr9t64xn 
       [2] => http://test.to/getae/vidzi7 
      ) 

    ) 

, который я хочу, чтобы слиться с этим новым массивом:

$newarray = Array 
    (
     [mock] => Array 
      (
       [0] => http://test.to/getae/vidzichawal2 
      ) 

    ) 

Я сливаясь массив, array_merge_recursive($oldarray, $newarray);

И результат:

Array 
(
    [0] => http://test.to/getac/l4p0y6ziqt9h 
    [mock] => Array 
     (
      [0] => http://test.to/getae/vidzi5 
      [1] => http://test.to/getae/vidzi6 
      [4] => http://test.to/getae/1x5fbr9t64xn 
      [2] => http://test.to/getae/vidzi7 
      [0] => http://test.to/getae/vidzichawal1 
     ) 
); 

Все вещи есть работает хорошо, но есть одна проблема, которую вы можете увидеть в результате там double 0 key, когда я использую t его ссылка в цикле только 1 ссылка извлечения 0 Я хочу, чтобы эти ключи автоматически, как 0 1 2 3 4 5 6 и продолжать после слияния.

Я надеюсь, вы понимаете, что я хочу, спасибо

+0

Вы уверены, что он имеет тот же ключ дважды, как это не возможно? –

+1

У вас не может быть дубликатов ключей! – Rizier123

+0

да, я на 100% уверен, что у меня проблема с этими дублирующимися ключами – Sufyan

ответ

0

Использование array_merge()

<?php 
$array1 = array("color" => "red", 2, 4); 
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); 
$result = array_merge($array1, $array2); 
print_r($result); 
?> 

Приведенный выше пример выведет:

Array 
(
    [color] => green 
    [0] => 2 
    [1] => 4 
    [2] => a 
    [3] => b 
    [shape] => trapezoid 
    [4] => 4 
) 

REF.

Примечание Yo У вас не может быть дубликатов ключей!

UPDATE

Пример использования array_merge_recursive()

<?php 
$oldarray = array('http://test.to/getac/l4p0y6ziqt9h', 'mock' => array('http://test.to/getae/vidzichawal1', 'http://test.to/getae/vidzi6', 'http://test.to/getae/1x5fbr9t64xn', 'http://test.to/getae/vidzi7')); 
$newarray = array('mock' => array('http://test.to/getae/vidzichawal2')); 

$result = array_merge_recursive($oldarray, $newarray); 

var_dump($result); 
?> 

ВЫВОД

array (size=2) 
    0 => string 'http://test.to/getac/l4p0y6ziqt9h' (length=33) 
    'mock' => 
    array (size=5) 
     0 => string 'http://test.to/getae/vidzichawal1' (length=33) 
     1 => string 'http://test.to/getae/vidzi6' (length=27) 
     2 => string 'http://test.to/getae/1x5fbr9t64xn' (length=33) 
     3 => string 'http://test.to/getae/vidzi7' (length=27) 
     4 => string 'http://test.to/getae/vidzichawal2' (length=32) 
+0

Я также попробовал array_merge, но это не работает – Sufyan

+0

@Sufyan, с какими проблемами вы сталкиваетесь при использовании 'array_merge()' – Hassaan

+0

, используя массив_merge, все ссылки в oldarray mock были escape, а newarray mock будет означать, что это не означает, новый со старым – Sufyan

Смежные вопросы