Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,030

HOME > PHP > PHP Forum > ถามเรือ่ง Array นิดนึงครับ จาก Code ด้านบนผมตัวแปลใน Array แยกออกไปเป็นตัวแปล $b แต่พอรันมันรันไม่ได้อ่ะครับ



 

ถามเรือ่ง Array นิดนึงครับ จาก Code ด้านบนผมตัวแปลใน Array แยกออกไปเป็นตัวแปล $b แต่พอรันมันรันไม่ได้อ่ะครับ

 



Topic : 023528



โพสกระทู้ ( 364 )
บทความ ( 0 )



สถานะออฟไลน์




$b = '100 => Chalermchai, 300 => Werachai, 200 => Somchai';

$a = array($b);

if(krsort(&$a))
{
foreach ($a as $mon => $name)
{
echo $name.' = '.$mon.'<br>';
}
}

จาก Code ด้านบนผมตัวแปลใน Array แยกออกไปเป็นตัวแปล $b แต่พอรันมันรันไม่ได้อ่ะครับ ไม่ทราบว่าจะมีวิธียังไงบ้างครับที่จะสามารถทำให้มันใช้ได้ รบกวนท่านเซียนหนอ่ยครับ


Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 22 ธ.ค. 2551 12:29:24 By : lermjunior View : 1568 Reply : 2
 

 

No. 1

Guest


$b = array ("100" => Chalermchai , "300" => Werachai , "200" => Somchai);

if(krsort($b))
{
foreach ($b as $mon => $name)
{
echo"" .$name." = ".$mon."<br>";
}
}






Date : 22 ธ.ค. 2551 16:22:10 By : fff
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เป็นตัวแปรชุดที่มีการเก็บค่าตัวแปรที่มี ชนิดของข้มูลเหมือนกัน เช่น เก็บ รายชื่อของพนักงาน อายุ เงินเดือน

- Arrary 1 มิติ

$a[0]="Somchai";
$a[1]="Werachai";
$a[2]="Surachai";
$a[3]="Adisorn";

การประกาศตัวแปร

$a[5]

จะมีสมาชิก 6 ตัวคือ $a[0],$a[1],$a[2],$a[3],$a[4],$a[5]

$a[3]

จะมีสมาชิก 4 ตัวคือ $a[0],$a[1],$a[2],$a[3]

Sample

Code (PHP)
<?php
<?
$color_table["red"] = 0xff0000;
$color_table["green"] = 0x00ff00;
$color_table["blue"] = 0x0000ff;
$color_name= "red";
echo "value = ".$color_table[ $color_name]."<BR>\n";
?>
?>



Out

value = 16711680


การใช้คำสั่ง each และ list สำหรับ associative array ถ้าเราต้องการจะเข้าถึงข้อมูลแต่ละคู่ที่ถูกเก็บอยู่ใน associative array เราอาจจะใช้วิธีเรียกผ่านฟังก์ชัน each() และ list() ตามตัวอย่างต่อไปนี้


Sample

Code (PHP)
<?php
<?
unset($a);
$a = array( "a" => 10, "b" => 20, "c" => 30 );
while (list($key,$value) = each($a)) {
echo "$key=$value <BR>\n";
}
?>
?>


Out

a=10
b=20
c=30


ฟังก์ชัน each() จะอ่านข้อมูลทีละคู่จากอาร์เรย์แบบเชื่อมโยงมาแล้วส่งไปยังฟังก์ชัน list() ซึ่งจะทำหน้าที่แยกเก็บ ซึ่งในกรณีก็คือ เก็บไว้ในตัวแปร $key และ $value หลังจากนั้น เราก็สามารถนำค่าของตัวแปร ไปใช้งานตามที่ต้องการได้



- Arrary 2 มิติ

$a[0][0]="Somchai";
$a[0][1]="Werachai";
$a[1][2]="Surachai";

การประกาศตัวแปร

$a[2][2]

จะมีสามชิก 8 ตัว คือ $a[0][0],$a[0][1],$a[0][2],$a[1][0],$a[2][0],$a[1][1],$a[1][2],$a[2][2],


Sample

Code (PHP)
<?php
<?
$countries = array (
"thailand" => array ( "zone" => "Asia", "D_NAME" => ".th"),
"malasia" => array ( "zone" => "Asia", "D_NAME" => ".my"),
"india" => array ( "zone" => "Asia", "D_NAME" => ".in"),
"holland" => array ( "zone" => "Europe", "D_NAME" => ".nl"),
"france" => array ( "zone" => "Europe", "D_NAME" => ".fr")
);
echo "domain name=".$countries[ "thailand"]["D_NAME"]."<BR>\n";
?>
?>


Out Put

domain name=.th


- Array 3 มิติ

$a[0][0][0]="Somchai";
$a[0][1][2]="Werachai";
$a[1][2][3]="Surachai";



Sample1.php

Code (PHP)
<?php
<?
$a[0]="Somchai";
$a[1]="Werachai";
$a[2]="Surachai";
$a[3]="Adisorn";
$b[0]=20;
$b[1]=21;
$b[2]=22;
$b[3]=23;
for($i=0;$i<=3;$i++)
{
echo"name : $a[$i] Old $b[$i] <br>";
}
?>
?>




Sample2.php

Code (PHP)
<?php
<?
$a=array("Somchai","Werachai ","Surachai","Adisorn");
for($i=0;$i<=3;$i++)
{
echo"name : $a[$i] <br>";
}
?>
?>







อาร์เรย์ในภาษา PHP นั้นจะแตกต่างจากอาร์เรย์ในภาษาซีหรือจาวาตรงที่ว่า อาร์เรย์ในภาษา PHP มีขนาดที่เปลี่ยนแปลงได้ หรือจะเรียกว่า dynamic array หรือ vector (สำหรับอาร์เรย์มิติเดียว) เริ่มต้นอาจจะแจ้งใช้ตัวแปรแบบอาร์เรย์ พร้อมเจาะจงขนาดเริ่มแรก เช่น มีขนาดเป็นศูนย์ก็ได้

$myarray[]=3;
$myarray[]=1.1;
$myarray[]="abc";

แต่เมื่อใช้อาร์เรย์ไป ขนาดของมันจะปรับเปลี่ยนได้ คือขยายจำนวนข้อมูลที่เก็บอยู่ภายในอาร์เรย์ ตามจำนวนข้อมูลที่เราใส่เพิ่มเข้าไป จากตัวอย่างข้างบน ในกรณีที่เรามิได้กำหนดเลขดัชนี (index) ก็หมายความว่า จะมีการขยายขนาดของอาร์เรย์เพิ่มขึ้นอีกหนึ่งโดยอัตโนมัติ ทุกครั้งที่เราใส่ข้อมูลที่อยู่ทางขวา และค่าที่เรากำหนดจากทางขวามือ และจะเก็บไว้ในที่ใหม่ของอาร์เรย์ เราไม่ต้องคำนึงถึงเรื่องการจอง หรือ ปลดปล่อยหน่วยความจำของอาร์เรย์ เหมือนอย่างในกรณีของอาร์เรย์ แบบไดนามิกในภาษาซี

นอกจากนั้นข้อมูลแต่ละตัวในอาร์เรย์ไม่จำเป็น ต้องเป็นข้อมูลชนิดเดียวกัน เช่น อาจจะมีทั้งจำนวนเต็ม เลขทศนิยม และข้อความ ปะปนกันไป ตัวอย่างเช่น

Code (PHP)
<?php
<?
$myarray[0] = 1;
echo "number of elements =".count($myarray)."<BR>\n";

$myarray[1] = "abc";
echo "number of elements =".count($myarray)."<BR>\n";

$myarray[2] = 1.3;
echo "number of elements =".count($myarray)."<BR>\n";

$myarray[]= 13+10; // the same as $myarray[3]= 13+10;
echo "number of elements =".count($myarray)."<BR>\n";

for ($i=0; $i < 4; $i++) {
echo $myarray[$i]," \n";
}

?>
?>


ถ้าเราต้องการจะทราบจำนวนของข้อมูลที่มีอยู่ในอาร์เรย์เราจะใช้คำสั่ง count()

เทคนิคหนึ่งที่ใช้ในการสร้างอาร์เรย์ที่เก็บหลายๆข้อความหรือสตริงค์ คือ แทนที่เราจะกำหนดค่าของสมาชิก ในอาร์เรย์ทีละตัว เราจะสร้างได้โดยอัตโนมัติ โดยเก็บสตริงค์เหล่านั้นไว้ในสตริงค์เพียงอันเดียวโดยมีสัญลักษณ์ | เป็นตัวแยก และก็แล้วใช้ฟังก์ชันเป็นตัวแบ่งเพื่อสร้างอาร์เรย์อีกที ตามตัวอย่าง

Code (PHP)
<?php
<?
// create empty array
$a=array();
// define string containing color names separated by | (pipe)
$color_names="red|green|blue";

// create array from string
$a=explode("|",$color_names);
while ($color=each($a)) {
echo "$color[1]<BR>\n"; // note: $color[0] contains the index (0,1,2,...)
}
?>
?>


ลองดูอีกตัวอย่างหนึ่งที่ใช้ฟังก์ชัน explode() สร้างอาร์เรย์โดยอัตโนมัตสำหรับใส่ไว้ใน FORM ในส่วนของ SELECT เป็นเมนูให้เลือก

Code (PHP)
<?php
<?
// create selection list from a given string
function str2select($str, $delim) {
$options = explode($delim,$str);
$num = count($options);
for( $i=0; $i < $num;$i++) {
echo "<option> $options[$i]</option>\n";
}
}

$select_str="10 บาท|20 บาท|30 บาท|40 บาท|50 บาท|100 บาท|200 บาท|500 บาท|1000 บาท";
?>

<FORM>
<SELECT NAME="testform">
<? str2select($select_str,"|"); ?>
</SELECT>
</FORM>
?>



การใช้อาร์เรย์สองมิติ
ถ้าเราต้องการจะใช้อาร์เรย์แบบสองมิติ (หรือมากกว่า) ก็ทำได้เช่นกัน คือชื่อตัวแปรแล้วตามด้วย [..][..] ตัวอย่างเช่น

Code (PHP)
<?php
<?
$dim = 3;
for ($row=0; $row <= $dim; $row++) {
for ($column=0; $column <= $dim; $column++) {
$myarray2[$row][$column] = 4*$row + $column;
echo $myarray2[$row][$column]," ";
}
echo "<BR>\n";
}

?>
?>



สังเกตว่า สำหรับการใช้งานตัวแปรที่เป็นอาร์เรย์ เราไม่จำเป็นต้องแจ้งใช้ตัวแปรที่เป็นอาร์เรย์ พร้อมกำหนดขนาดก่อนการใช้งาน
Date : 2009-04-25 19:36:58 By : webmaster
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ถามเรือ่ง Array นิดนึงครับ จาก Code ด้านบนผมตัวแปลใน Array แยกออกไปเป็นตัวแปล $b แต่พอรันมันรันไม่ได้อ่ะครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่