|
|
|
สงสัยกับ Function Array ที่สามารถแล้วตัดค่า 0 หรือ ค่าว่างทิ้งไป ได้ไหมค่ะ |
|
|
|
|
|
|
|
เราลองประยุกต์ใช้งานกับการดึงจากฐานข้อมูล แล้วไม่เสร็จค่ะ
ค่า 0 ของเราไม่ตัดค่าให้ และจากที่ดู print_r Array มันเป็นหลายมิติ เลยสงสัยว่ามันตัดค่า 0 หรือ ค่าว่างทิ้งไป ได้ไหมค่ะ
รบกวนช่วยหน่อยนะค่ะ
จากตัวอย่าง
Code (PHP)
<?php
$a = array(11,5,0,2,0,1);
$a = array_diff($a,array(0)); //ลบสมาชิกที่มีค่า 0 ออก .... ใช้คำสั่งอันนี้ หรือ
//$a = array_filter($a); //ลบสมาชิกที่มีค่า 0 ออก .... ใช้คำสั่งอันนี้ ก็ได้
sort($a,SORT_NUMERIC); //เรียงลำดับ
echo '<pre>';print_r($a);echo '</pre>';
?>
Code
Array
(
[4] => 1
[2] => 2
[0] => 5
)
อิงอ้าง : http://web-programming-bookmark.blogspot.com/2010/12/remove-some-value-from-array.html
โค๊ดที่ติดปัญหาค่ะ
Code (PHP)
<?php require_once('includes/connect.php'); ?>
<?php require_once('includes/function.php'); ?>
<?
$strSQL = "SELECT * from DATA where ID='1' ";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult= mssql_fetch_array($objQuery))
{
$row[] = array($objResult["A_E11"],$objResult["A_F11"],$objResult["A_E12"],$objResult["A_F12"],
$objResult["A_E13"],$objResult["A_F13"],$objResult["A_E14"],$objResult["A_F14"],$objResult["A_E15"],
$objResult["A_F15"],$objResult["A_E16"],$objResult["A_F16"],$objResult["A_E17"],$objResult["A_F17"],
$objResult["A_E18"],$objResult["A_F18"],$objResult["A_E21"],$objResult["A_F21"],$objResult["A_E22"],
$objResult["A_F22"],$objResult["A_E23"],$objResult["A_F23"],$objResult["A_E24"],$objResult["A_F24"],
$objResult["A_E25"],$objResult["A_F25"],$objResult["A_E26"],$objResult["A_F26"],$objResult["A_E27"],
$objResult["A_F27"],$objResult["A_E28"],$objResult["A_F28"]);
}
$a = array($row);
echo '<pre>';print_r($a);echo '</pre>';
?>
ผลลัพธ์แสดง Array
Code
Array
(
[0] => Array
(
[0] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 1.62
[7] => 1.22
[8] => 0
[9] => 0
[10] => 0
[11] => 0
[12] => 0
[13] => 0
[14] => 0
[15] => 0
[16] => 0
[17] => 0
[18] => 0
[19] => 0
[20] => 0
[21] => 0
[22] => 0
[23] => 0
[24] => 0
[25] => 0
[26] => 0
[27] => 0
[28] => 0
[29] => 0
[30] => 0
[31] => 0
)
[1] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 0
[8] => 0
[9] => 0
[10] => 0
[11] => 0
[12] => 2.12
[13] => 1.92
[14] => 0
[15] => 0
[16] => 0
[17] => 0
[18] => 0
[19] => 0
[20] => 0
[21] => 0
[22] => 0
[23] => 0
[24] => 0
[25] => 0
[26] => 0
[27] => 0
[28] => 0
[29] => 0
[30] => 0
[31] => 0
)
)
)
Tag : PHP, JavaScript, Action Script, Ajax, jQuery, CakePHP
|
ประวัติการแก้ไข 2013-08-01 15:42:07
|
|
|
|
|
Date :
2013-08-01 15:40:56 |
By :
phoenix10 |
View :
1199 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ array_diff เพื่อ diff ค่าที่ไม่ต้องการออกครับ
Code (PHP)
<?php
$array1 = array('A','','0','F','1','X','Z','0','','0');
$array2 = array('0','');
$result = array_diff($array1, $array2);
print_r($result);
?>
|
|
|
|
|
Date :
2013-08-01 19:24:15 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้ว Array แบบดึงจากฐานข้อมูล ทำได้ไหมค่ะ
Code (PHP)
Array
(
[0] => Array
(
[0] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 1.62
[7] => 1.22
[8] => 0
[9] => 0
[10] => 0
[11] => 0
[12] => 0
[13] => 0
[14] => 0
[15] => 0
[16] => 0
[17] => 0
[18] => 0
[19] => 0
[20] => 0
[21] => 0
[22] => 0
[23] => 0
[24] => 0
[25] => 0
[26] => 0
[27] => 0
[28] => 0
[29] => 0
[30] => 0
[31] => 0
)
[1] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 0
[8] => 0
[9] => 0
[10] => 0
[11] => 0
[12] => 2.12
[13] => 1.92
[14] => 0
[15] => 0
[16] => 0
[17] => 0
[18] => 0
[19] => 0
[20] => 0
[21] => 0
[22] => 0
[23] => 0
[24] => 0
[25] => 0
[26] => 0
[27] => 0
[28] => 0
[29] => 0
[30] => 0
[31] => 0
)
)
)
|
|
|
|
|
Date :
2013-08-02 08:43:35 |
By :
phoenix10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เราลองทำวิธีนี้มัน มันตัด 0 ออกไปได้ แต่มันดันแยกกัน
Code (PHP)
<?php require_once('includes/connect.php'); ?>
<?php require_once('includes/function.php'); ?>
<?
$strSQL = "SELECT * from DATA where ID='1' ";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult= mssql_fetch_array($objQuery))
{
$row[] = array($objResult["A_E11"],$objResult["A_F11"],$objResult["A_E12"],$objResult["A_F12"],
$objResult["A_E13"],$objResult["A_F13"],$objResult["A_E14"],$objResult["A_F14"],$objResult["A_E15"],
$objResult["A_F15"],$objResult["A_E16"],$objResult["A_F16"],$objResult["A_E17"],$objResult["A_F17"],
$objResult["A_E18"],$objResult["A_F18"],$objResult["A_E21"],$objResult["A_F21"],$objResult["A_E22"],
$objResult["A_F22"],$objResult["A_E23"],$objResult["A_F23"],$objResult["A_E24"],$objResult["A_F24"],
$objResult["A_E25"],$objResult["A_F25"],$objResult["A_E26"],$objResult["A_F26"],$objResult["A_E27"],
$objResult["A_F27"],$objResult["A_E28"],$objResult["A_F28"]);
}
$array1 = array($row);
$array2 = array('0','');
@$result1 = array_diff($array1[0][0], $array2);
@$result2 = array_diff($array1[0][1], $array2);
@$result3 = array_diff($array1[0][2], $array2);
echo '<pre>';print_r($result1);echo '</pre>';
echo '<pre>';print_r($result2);echo '</pre>';
echo '<pre>';print_r($result3);echo '</pre>';
?>
Code
Array
(
[6] => 1.62
[7] => 1.22
)
Array
(
[12] => 2.12
[13] => 1.92
)
อันที่ถูกต้องเป็นแบบนี้ค่ะ สมมติว่าตัด 0 ไปแล้ว แต่ไม่รู้จะทำอย่างไรค่ะ
Code
Array
(
[0] => Array
(
[0] => Array
(
[0] => 1.62
[1] => 1.22
[2] => 2.12
[4] => 1.92
)
[1] => Array
(
[0] => 1.62
[1] => 1.22
[2] => 2.12
[4] => 1.92
)
)
)
|
ประวัติการแก้ไข 2013-08-02 10:54:08
|
|
|
|
Date :
2013-08-02 10:52:18 |
By :
phoenix10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|