Просто нужно немного помочь здесь. Потому что я создаю список массивов. И мне нужно заменить значение массива, используя условие. При проверке условия у меня нет ошибки. Но когда я заменяю массив, он не заменяется. Извините за мой плохой английский. Надеюсь, ты поймешь, о чем я. Вот мой код.Функция Array_replace() не отображает правильное замещенное значение
Вот мой ОСНОВА массив:
Array
(
[0] => Array
(
[restaurant_id] => 1519
[new_lat] => 14.63809
[new_long] => 121.03242
[date_updated] => 2013-11-14 18:53:20
)
)
Теперь я заменю этот массив в массиве
Array
(
[0] => Array
(
[restaurant_id] => 1519
[new_lat] => 14.63796
[new_long] => 121.03278
[date_updated] => 2013-11-15 06:54:32
)
)
Теперь я использовал array_replace();
Вот результат:
Array
(
[0] => Array
(
[restaurant_id] => 1519
[new_lat] => 14.63809
[new_long] => 121.03242
[date_updated] => 2013-11-14 18:53:20
)
[restaurant_id] => 1519
[new_lat] => 14.63796
[new_long] => 121.03278
[date_updated] => 2013-11-15 06:54:32
)
В моем коде для создания массива:
//THIS IS MY UPDATED ARRAY
$data_add = array(
'restaurant_id' => $restaurant_id,
'new_lat' => $new_lat_entry,
'new_long' => $new_long_entry,
'date_updated' => date('Y-m-d H:i:s')
);
$data = unserialize(file_get_contents('addresses.txt')); //THIS IS THE BASE ARRAY
//GET THE ID OF UPDATED ARRAY AND FIND IN THE BASE ARRAY - IF EXIST, UPDATE ONLY. IF NOT SIMPLY ADD
$target = $data_add['restaurant_id'];
for ($i = 0; $i < count($data); $i++) {
$get_id = $data[$i]['restaurant_id'];
if($get_id == $target){
//if found update/delete specific row
echo "found";
$add_data = array();
$add_data = array(
$i => $data_add
);
$new_array = array();
$new_array = array_replace($data,$data_add);
}else{
//if not found add
echo "not found";
$data[] = $data_add;
}
}
Для отображения:
echo "<pre>";
echo "BASE ARRAY<br />";
print_r($data);
echo "---------------------------------------------------------<br />";
echo "NEW ARRAY<br />";
print_r($add_data);
echo "---------------------------------------------------------<br />";
echo "REPLACED ARRAY<br />";
print_r($new_array);
echo "---------------------------------------------------------<br />";
Любая идея, где мой код идет не так? Пожалуйста, помогите мне, ребята. Заранее спасибо. :)
Сэр еще вопрос. Я исправил отображение нового массива. Но в моем текстовом файле он всегда добавляет новый файл. – Jerielle
Я не уверен, что вы подразумеваете под «в моем текстовом файле он всегда добавляет новый файл». Возможно, вы можете открыть новый вопрос? –