array function ไม่ทราบว่ามีวิธีลบเพียงแค่ key แต่รักษาค่า value ให้คงอยู่ใหมครับ

เริ่มโดย okgofun, 20 กรกฎาคม 2008, 16:50:37

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

okgofun

array function ไม่ทราบว่ามีวิธีลบเพียงแค่ key แต่รักษาค่า value ให้คงอยู่ใหมครับ

ตัวอย่างเช่น
// ต้นฉบับ
  $a[1]= array("name1","surname1","type1") ;
  $a[2]= array("name2","surname2","type2") ;
  $a[3]= array("name3","surname3","type3") ;

print_r($a) แล้วจะมีลักษณะนี้
Array ( [1] => Array (
  • => name1 [1] => surname1 [2] => type1 ) [2] => Array (
  • => name2 [1] => surname2 [2] => type2 ) [3] => Array (
  • => name3 [1] => surname3 [2] => type3 ) )

    // แต่ต้องการทำให้เหลือแต่ค่า value 3 ค่าของแต่ละ key ที่อยู่ใน $a[1] , $a[2] , $a[3] พอจะมี function ของ array โดยตรงใหมครับ โดยที่เราไม่ต้องมาเขียนฟังก์ชั่นเองให้ merge อะ

    เหมือนให้ผลลัพธ์แบบนี้ครับ

    Array (
  • => name1 [1] => surname1 [2] => type1 [3] => name2 [4] => surname2 [5] => type2 [6] => name3 [7] => surname3 [8] => type3 )

    ลอง search จาก gg หาไงก็หาไม่เจอซักที  :P ขอคำแนะนำด้วยนะครับ ขอบคุณครับ
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

TheboY

ลองเลือกดูครับว่าอยากได้แบบไหน

code
<?
$a[1]= array("name1","surname1","type1") ;
$a[2]= array("name2","surname2","type2") ;
$a[3]= array("name3","surname3","type3") ;

print("<br />Original<br />");
print_r($a);
print("<br />");

$all = $a[1] + $a[2] + $a[3];
print("<br />+ result<br />");
print_r($all);
print("<br />");

$all = array_merge($a[1], $a[2], $a[3]);
print("<br />array_merge result<br />");
print_r($all);
print("<br />");

$all = array_merge_recursive($a[1], $a[2], $a[3]);
print("<br />array_merge_recursive result<br />");
print_r($all);
print("<br />");
?>


ผลลัพธ์


Original
Array ( [1] => Array ( [0] => name1 [1] => surname1 [2] => type1 ) [2] => Array ( [0] => name2 [1] => surname2 [2] => type2 ) [3] => Array ( [0] => name3 [1] => surname3 [2] => type3 ) )

+ result
Array ( [0] => name1 [1] => surname1 [2] => type1 )

array_merge result
Array ( [0] => name1 [1] => surname1 [2] => type1 [3] => name2 [4] => surname2 [5] => type2 [6] => name3 [7] => surname3 [8] => type3 )

array_merge result
Array ( [0] => name1 [1] => surname1 [2] => type1 [3] => name2 [4] => surname2 [5] => type2 [6] => name3 [7] => surname3 [8] => type3 )

TheboY

ขออธิบายเพิ่มเติม

+  ถ้า key ซ้ำจะไม่นำมารวม (ยึดตัวแรกเป็นหลัก)

array_merge ถ้า key ซ้ำจะถูกนำมาแทนที่ (ยึดตัวที่มาทีหลัง)

array_merge_recursive ถ้า key ซ้ำจะถูกนำมารวมเป็น array ซ้อน array

ball6847

งงจังคับ

ทำมัยไม่เรียกแบบระบุคีย์อ่ะคับ

$a[1][0] , $a[1][1] , $a[1][2] 

รึว่ามีอย่างอื่นมาบังคับหรอคับ  :P
We use Ubuntu.

[direct=http://ng-seo.sourcelab.xyz/]AngularJS SEO Experimental[/direct]

okgofun

อ้างถึงจาก: TheboY ใน 20 กรกฎาคม 2008, 20:13:12
ลองเลือกดูครับว่าอยากได้แบบไหน

code
<?
$a[1]= array("name1","surname1","type1") ;
$a[2]= array("name2","surname2","type2") ;
$a[3]= array("name3","surname3","type3") ;

print("<br />Original<br />");
print_r($a);
print("<br />");

$all = $a[1] + $a[2] + $a[3];
print("<br />+ result<br />");
print_r($all);
print("<br />");

$all = array_merge($a[1], $a[2], $a[3]);
print("<br />array_merge result<br />");
print_r($all);
print("<br />");

$all = array_merge_recursive($a[1], $a[2], $a[3]);
print("<br />array_merge_recursive result<br />");
print_r($all);
print("<br />");
?>


ผลลัพธ์


Original
Array ( [1] => Array ( [0] => name1 [1] => surname1 [2] => type1 ) [2] => Array ( [0] => name2 [1] => surname2 [2] => type2 ) [3] => Array ( [0] => name3 [1] => surname3 [2] => type3 ) )

+ result
Array ( [0] => name1 [1] => surname1 [2] => type1 )

array_merge result
Array ( [0] => name1 [1] => surname1 [2] => type1 [3] => name2 [4] => surname2 [5] => type2 [6] => name3 [7] => surname3 [8] => type3 )

array_merge result
Array ( [0] => name1 [1] => surname1 [2] => type1 [3] => name2 [4] => surname2 [5] => type2 [6] => name3 [7] => surname3 [8] => type3 )


ขอบคุณมากครับ เดี๋ยวผมจะลองดูครับ :-*


อ้างถึงจาก: ball6847 ใน 20 กรกฎาคม 2008, 20:39:22
งงจังคับ

ทำมัยไม่เรียกแบบระบุคีย์อ่ะคับ

$a[1][0] , $a[1][1] , $a[1][2] 

รึว่ามีอย่างอื่นมาบังคับหรอคับ  :P 

เอ่อ ผมทำเป็น function หนึ่งใน class ที่จำเป็นต้องใช้งานส่งค่าร่วมกับ function อื่นอีกทีหนะครับ  :P เลยดูเหมือนจะยุ่งยากหน่อย
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

thenetxx

Develop site but can't develop life
ASIA

okgofun

จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน