رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
عملکرد جالب array_merge
#1
با سلام
داشتم کدنویسی میکردم که یه خطا خیلی منو درگیر کرد اونم تو Ajax !!! تا اینکه منشا خطا رو درآوردم

این کد رو با هم ببینیم :

$oneArray=array(1=>'item 1' , 4=>'item 2');
$secArray=array(0=>'selection');
$res=array_merge($secArray , $oneArray);
echo "<select>";
foreach($res as $key=>$val){
	echo "<option value='{$key}'>{$val}</option>";
}
echo "</select>";

حالا نتیجه رو ببینید :

<select>
	<option value="0">selection</option>
	<option value="1">item 1</option>
	<option value="2">item 2</option>
</select>

همونطور که میبینید value های مربوط به option ها با کلیدهای آرایه مطابقت ندارند.جالبه !!!
پاسخ
تشکر شده توسط:
#2
اندیس های عددی، در array_merge نادیده گرفته میشن و از صفر شروع میشه و به ترتیب میره بالا.
پاسخ
تشکر شده توسط:
#3
جالبه که حتی اگه تو کوتیشن بزاریشون بازم همینجوریه
پاسخ
تشکر شده توسط:
#4
من آرایه ها رو اینطوری merge‌ میکنم. تو این حالت هم تست کردم مشکلی نداشت.

$res = $secArray + $oneArray;
...
پاسخ
تشکر شده توسط:
#5
استارتر جان طبیعیه عجیب نیست!!! از array_replace استفاده کن مشکلت حل میشه.
---
(21-05-1394، 04:23 ب.ظ)MRPM نوشته: من آرایه ها رو اینطوری merge‌ میکنم. تو این حالت هم تست کردم مشکلی نداشت.

$res = $secArray + $oneArray;

عجب!!! این کلا یه چیز دیگست و خیلی تفاوت داره :|
پاسخ
تشکر شده توسط:
#6
(21-05-1394، 11:57 ب.ظ)n0o0b_sina نوشته: عجب!!! این کلا یه چیز دیگست و خیلی تفاوت داره :|

منظورتون رو متوجه نشدم،‌ اگه قصدتون تمسخره بهتر بود به جای باهوش جلوه دادن خود یه زحتمی به خودت میدادی و کدها رو تست و نتایجش رو مقایسه میکردی.
...
پاسخ
تشکر شده توسط:
#7
(22-05-1394، 12:18 ق.ظ)MRPM نوشته: منظورتون رو متوجه نشدم،‌ اگه قصدتون تمسخره بهتر بود به جای باهوش جلوه دادن خود یه زحتمی به خودت میدادی و کدها رو تست و نتایجش رو مقایسه میکردی.

مردم دیگ جنبه ی شکلکم ندارن :|
منظورم این بود که این عملکرد رو اصلا نمیشه به جای array_merge استفاده کرد!!!
پاسخ
تشکر شده توسط:
#8
ربطی به شکلک نداره نوع جلموت بیان همه چیز هست.
خوب اگه منظورتون این بود چرا از اول همین رو نونشتید؟
خوب حالا چرا نمیشه استفاده کرد؟ با دلیل بگید وقتی بدون مشکل استفاده شده و جواب میده!!!
...
پاسخ
تشکر شده توسط:
#9
<?php
$arr1 = [
	'hello' => 'hi'
];
$arr2 = [
	'hello' => 'salam'
];
print_r($arr1 + $arr2); // out put: Array ( [hello] => hi )
print_r(array_merge($arr1, $arr2)); // out put: Array ( [hello] => salam )
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 3 مهمان