PDA

View Full Version : درج در وسط آرایه



reza.palang
پنج شنبه 01 بهمن 1388, 02:17 صبح
سلام
من یک آرایه دارم که میخواست یکی در میون وسط مقادیرش یک سری مقادیر دیگه واردم کنم
جستجو کردم چیز به درد بخوری پیدا نکردم

امیـرحسین
پنج شنبه 01 بهمن 1388, 13:41 عصر
برای درج یکی در میان می تونید از یه حلقه استفاده کنید که ایندکس ها رو جابجا می کنه:
$arr = Array(
0 => 'alpha',
1 => 'beta',
2 => 'gomma',
3 => 'zeta',
4 => 'omega',
5 => 'delta'
);
$last_index = count($arr) - 1;
for($i=$last_index ; $i>0 ; $i--) {
$arr[$i*2] = $arr[$i];
$arr[$i*2 - 1] = '------------------';
}
ksort($arr);
print_r($arr);
/* Output
Array
(
[0] => alpha
[1] => ------------------
[2] => beta
[3] => ------------------
[4] => gomma
[5] => ------------------
[6] => zeta
[7] => ------------------
[8] => omega
[9] => ------------------
[10] => delta
)
*/

و این هم یه تابع کلی که برای وارد کردن آرایه یا مقدار به یه آرایه (http://boplo.ir/php/array_inject_function/) نوشتم:
/**
* Injects input to array
*
* @param array $array Original array
* @param integer $index Index to inject into
* @param mixed $input Array/String/Integer input to be injected
* @return array New array
*/
function array_inject($array, $index, $input) {
$start = array_slice($array, 0, $index);
$inject = is_array($input) ? $input : array($input);
$end = array_slice($array, $index);

return array_merge($start, $inject, $end);
}

// Example
$new_array = array_inject($original_array, 5, $inject_array);
$new_array = array_inject($original_array, 5, 'an input');


موفق باشید