[請益] 取出陣列內特定條件的值

看板PHP作者 (Eric Chang)時間12年前 (2014/01/13 14:11), 編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/1
不好意思,小弟是PHP門外漢 但是最近臨危受命,要更改一段程式 這個程式會把一些資料丟進一個陣列內 內容大概長這樣 Array ( [id] => 705 [lang] => tw [photo_id] => 1179 [pnum] => 13100705 [url_buy] => [date_unlimit] => 0 [date_start] => 2013/10/03 [date_over] => 2099/12/31 [block] => 0 [sort] => 20131227 [uid] => 1 [time] => 1388112283 [file_path] => upload/product/1310-Thu/1380788118.04.76.thumb.jpg ) Array ( [id] => 720 [lang] => tw [photo_id] => 1956 [pnum] => 13100720 [url_buy] => [date_unlimit] => 0 [date_start] => 2013/10/31 [date_over] => 2099/12/31 [block] => 0 [sort] => 20131031 [uid] => 1 [time] => 1385020920 [file_path] => upload/product/1311-Thu/1385019725.8015.1.thumb.jpg ) 這是我用foreach + print_r 去找出來 我現在想要加一個判斷式 foreach($result AS $rw){ // idd 是我指定的一個數值 // 我想要做到當陣列內的 id這個key = idd時,取得 photo_id 的值 if ($rw["id"] = $idd) echo $idd."-".$rw["photo_id"]; else { echo $idd; } } //print_r ($rw); } 可是程式執行的結果,永遠都只會抓第一筆的photo_id 1179 即使 id 明明是720 不曉得我 -- 會當凌絕頂,一覽眾山小。 —— 杜甫 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.177.1

01/13 14:14, , 1F
if ($rw["id"] == $idd) 裡面的 = 要兩個
01/13 14:14, 1F

01/13 14:25, , 2F
用兩個==之後,都會跑到else那邊去耶..
01/13 14:25, 2F

01/13 14:28, , 3F
檢查一下{}的位置
01/13 14:28, 3F

01/13 15:52, , 4F
都跑去else就是沒有符合條件 把$rw["id"]跟$idd印出來看看
01/13 15:52, 4F

01/13 15:54, , 5F
不過{}沒有成對 應該會報錯誤才對
01/13 15:54, 5F
※ 編輯: chang0206 來自: 60.251.177.1 (01/13 16:16)

01/13 16:17, , 6F
我也覺得很奇怪,沒有報錯啊。後來改用兩個判斷式去抓
01/13 16:17, 6F

01/13 16:17, , 7F
就沒有問題了..
01/13 16:17, 7F

01/13 18:24, , 8F
直接把code貼上來會比較好debug....
01/13 18:24, 8F

01/13 18:25, , 9F
$result & $idd確認一下內容output是什麼?
01/13 18:25, 9F

01/13 19:08, , 10F
1. foreach ( $array as $index => $row ) 2. $row['id']
01/13 19:08, 10F
文章代碼(AID): #1IquEVvL (PHP)
文章代碼(AID): #1IquEVvL (PHP)