|
|
|
แทนที่ค่าใน Array ไม่ได้ครับ ผมมีปัญหาเกี่ยวกับ Array ครับ คือว่าผมมี Array อยู่ชุดหนึ่ง |
|
|
|
|
|
|
|
ก็แบบนี้ไงครับ
<pre>
<?php
$arr = array(1, 1, 2, 3, 4);
print_r($arr);
$arr[1] = 555;
$arr[1] = 'Hello World';
$arr[1] = null;
print_r($arr);
?>
|
|
|
|
|
Date :
2013-02-16 23:59:02 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถ้าเราไม่รู้ละว่า ค่าที่มันซ้ำกันอยู่ index ไหน ต้องทำไง ประมาณว่าให้มันหาค่าที่มันซ้ำกัน จะ index ไหนก็แล้วแต่ แล้วให้มันแทนที่ตัวล่าสุด ประมาณนี้อ่ะครับ
|
|
|
|
|
Date :
2013-02-17 00:02:29 |
By :
jackkichan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วิธีแก้ปัญหาง่ายที่สุดคือ
ใช้ array_search() หา key ของค่าที่ซ้ำ จาก array ที่ผ่านการเรียกใช้ array_reverse() แล้ว
ที่ต้องทำอย่างนี้ เพราะ array_search() ใช้หา key ของ "ค่าแรก" ใน array ดังนั้น หากจะหา "ค่าสุดท้าย" ต้องกลับตำแหน่งมันก่อน
แต่ต้องระวัง เราจะต้องเรียก array_reverse() โดยให้ค่า argument ที่ 2 เป็น true ไม่อย่างนั้น array_reverse() จะไม่รักษา key ไว้ให้
<pre>
<?php
$arr = array(1, 1, 2, 3, 4);
print_r($arr);
$key = array_search(1, array_reverse($arr, true)); // key ที่หาได้คือ 1
$arr[$key] = null;
print_r($arr);
?>
|
|
|
|
|
Date :
2013-02-17 00:49:29 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ ผมใช้ array_unique() ตัดค่าที่ซ้ำออก
แล้วเอา count ค่าเดิมของ array ไปวนลูป ย้านค่าไปใส่ ตัวแปร array ตัวใหม่ ตามจำนวนเดิม จะได้ค่าที่เป็นค่าว่างมาแทน
เรียบร้อยครับ ขอบคุณที่เข้ามาตอบครับ
|
|
|
|
|
Date :
2013-02-17 01:33:01 |
By :
jackkichan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|