PDA

View Full Version : اضافه کردن یک ارایه به ارایه دیگه



masiha68
چهارشنبه 07 خرداد 1393, 10:21 صبح
سلام دوستان
می خوام یه ارایه رو به ارایه دیگه اضافه کنم ... طوری که ارایه ی اول بازم ارایه بمونه ... یعنی:
فرض کیند یک ارایه دارم
$a=array('1','2','3') ; حالا می خوام یک مقدار یا یک اریه رو به این اضافه کنم مثلا ارایه ی
$b=array('9'); توی php تابعی هست که این کارو انجام بده ...

***BiDaK***
چهارشنبه 07 خرداد 1393, 10:27 صبح
$a=array('1','2','3') ;
$b=array('9');
$c= array_merge($a,$b);
print_r($c);

masiha68
چهارشنبه 07 خرداد 1393, 12:30 عصر
ممنون
و یک سوال دیگه
در مورد array_combine کلیدهای ارایه اول وقتی یکسان باشن حذف میشن ... میشه کاری کرد این اتفاق نیفته ؟؟
print_r(array_combine(Array('a','a','b'), Array(1,2,3)));
?>
Returns:
Array
(
[a] => 2
[b] => 3
}

MMSHFE
چهارشنبه 07 خرداد 1393, 13:32 عصر
خوب کاربرد این تابع اینه که دو آرایه میگیره و از یکی بعنوان اندیس و از یکی دیگه بعنوان مقدار استفاده میکنه و آرایه سومی رو میسازه که اندیسهاش، عناصر آرایه اول و مقادیرش عناصر آرایه دوم بودن. طبیعیه که توی یک آرایه، نمیشه دو عنصر با اندیس یکسان داشته باشیم (مقدار تکراری مجازه ولی اندیس تکراری نه).

سوداگر
چهارشنبه 07 خرداد 1393, 13:33 عصر
خوب این چیزی که گفتین دقیقا توی سایت php جواب داده شده!
منتها کلیدی که چند بار تکرار میشه (a) خودش یه آرایه از آرایه اصلی میشه

<?php
function array_combine_($keys, $values)
{
$result = array();
foreach ($keys as $i => $k) {
$result[$k][] = $values[$i];
}
array_walk($result, create_function('&$v', '$v = (count($v) == 1)? array_pop($v): $v;'));
return $result;
}

print_r(array_combine_(Array('a','a','b'), Array(1,2,3)));
?>
نتیجه:


Array
(
[a] => Array
(
[0] => 1
[1] => 2
)

[b] => 3
)
لینک: (http://ir1.php.net/manual/en/function.array-combine.php)

masiha68
چهارشنبه 07 خرداد 1393, 14:46 عصر
پس چاره ی کار چیه ؟ من باید یک سلکت انجام بدم که اندیس ها باید همگی یکی باشن و مقدار ها فرق کنن ... و حتما هم ارایه باشه

masiha68
چهارشنبه 07 خرداد 1393, 14:48 عصر
ممنون دوستان حل شد ... باید یک ارایه سه بعدی درست کرد :)