|
|
|
| Имеет два одномерных массива
$main_array = array ("Пункт 1", "Пункт 2", "-", "Пункт 3");
$sub_array = array ("Пункт 2.1", "Пункт 2.2");
|
Необходимо вставить вместо определенного элемента $main_array (например, "-") все элементы массива $sub_array. Т.е. чтобы $main_array принял вид:
Array
(
[0] => "Пункт 1"
[1] => "Пункт 2"
[2] => "Пункт 2.1"
[3] => "Пункт 2.2"
[4] => "Пункт 3"
)
Есть ли какое-нибудь простое и красивое решение? | |
|
|
|
|
|
|
|
для: Timofey
(11.01.2006 в 17:38)
| | Если вам из двух массивов необходимо сделать вот это:
[0] => "Пункт 1"
[1] => "Пункт 2"
[2] => "Пункт 2.1"
[3] => "Пункт 2.2"
[4] => "Пункт 3"
|
В такой же сортировке то вот простой код, и нечего заменять не надо
$main_array = array ("Пункт 1", "Пункт 2", "Пункт 3","Пункт 2.1", "Пункт 2.2");
natsort($main_array);
print_r($main_array);
|
Если же у вас два массива то их можно объединить
$main_array = array ("Пункт 1", "Пункт 2", "Пункт 3");
$sub_array = array ("Пункт 2.1", "Пункт 2.2");
foreach($main_array as $key->$index)
{
$arr[]=$index;
}
foreach($sub_array as $key->$index)
{
$arr[]=$index;
}
//Псоле всяго этого сделать опять же эту сортировку
natsort($main_array);
print_r($main_array);
|
Вроде так А там кто знает | |
|
|
|
|
|
|
|
для: cernos
(11.01.2006 в 19:25)
| | Хитро, но значения в массиве заранее не известны, неизвестно и местоположение элемента, который надо заменить (знаю только как он "выглядит"). Пока единственным решением вижу - организация третьего массива, последовательное перекидывание в него элементов $main_array, при встрече искомого элемента - переключиться на запись в этот временный массив элементов $sub_array, после этого дописать оставшиеся элементы $main_array, в конце скопировать этот массив в $main_array.
Но как-то влоб это все.
// в приведенном примере, кажется, в последних двух строках кода следует подставить $arr. | |
|
|
|
|
|
|
|
для: Timofey
(11.01.2006 в 19:53)
| | Пока, примерно, так:
<?
$main_array = array ("Вступление", "Самая вторая строка", "Замена", "Заключение");
$sub_array = array ("первая глава", "последующая глава");
$key_str = "Замена"; // такую строку следует подменить в массиве
$temp_array = array(); // временный массив
foreach ($main_array as $main_data)
{
if ($main_data == $key_str)
{
foreach ($sub_array as $sub_data)
$temp_array[] = $sub_data;
}
else
$temp_array[] = $main_data;
}
$main_array = $temp_array;
?>
|
| |
|
|
|
|
|
|
|
для: Timofey
(11.01.2006 в 17:38)
| | Дал неправильное решение... убрал. | |
|
|
|