亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php for 循環 用key對比參數 去對應的values

php for 循環 用key對比參數 去對應的values

PHP
_小_七_ 2016-08-06 15:11:44
? $data = 'L-15';? ? $arr =array( ? ? ? ? ? ?? ? ? ?? ? ? ?'L-12'=>'1265-50-7 20160720 7_IESNA95.IES',? ? ? ?'L-15'=>'1565-50-7 20160720 7_IESNA95.IES'?? ? );? ?? ? for($i = 0, $n = count($arr);$i < $n; $i++){? ? ? ? if($data == key($arr)){? ? ? ? ? ? $filepath = current($arr);? ? ? ? }? ? }? ? die(var_dump($filepath));我想取對應的值賦值給 $filwpath ?出錯 ? 打印說沒定義$filepath ;
查看完整描述

4 回答

已采納
?
snowmanJS

TA貢獻89條經驗 獲得超53個贊

/*
??解決方法一:1.首先$filepath在for中的if中,所以其作用域只能在if語句中,在其他位置都不能調用它,因此系統提示undefined。應該把$filepath放在for的上面定義;2.你的for語句中應該要加上?next($arr)。因為,調用?key()和current()這兩個函數的時候,指針不會自動移動,調用next()可使指針向下一個移動。
*/
<?php
$data?=?'L-15';
$filepath="";
$arr?=array('L-12'=>'1265-50-7?20160720?7_IESNA95.IES',
????'L-15'=>'1565-50-7?20160720?7_IESNA95.IES');
for($i?=?0,?$n?=?count($arr);$i?<?$n;?$i++){
????if($data?==?key($arr)){
????????$filepath?=?current($arr);
????????break;
????}
????next($arr);
}
var_dump($filepath);
?>
/*
??解決方法二:使用foreach循環,可以更簡潔的解決問題。
*/
<?php
$data?=?'L-15';
$filepath="";
$arr?=array('L-12'=>'1265-50-7?20160720?7_IESNA95.IES',
????'L-15'=>'1565-50-7?20160720?7_IESNA95.IES');
foreach($arr?as?$key=>$value){
????if($data?==?$key){
????????$filepath?=?$value;
????????break;
????}
}
var_dump($filepath);
?>


查看完整回答
1 反對 回復 2016-08-07
?
羅夜夜

TA貢獻9條經驗 獲得超2個贊

?$data?=?'L-15';
????$arr?=array(????????????
???????'L-12'=>'1265-50-7?20160720?7_IESNA95.IES',
???????'L-15'=>'1565-50-7?20160720?7_IESNA95.IES'?
????);
????for($i?=?0,?$n?=?count($arr);$i?<?2;?$i++){
?????????//?var_dump?(key($arr));
????????next($arr);?//主要是這個
????????if($data?==?key($arr)){
????????????//?var_dump?(key($arr));
????????????$filepath?=?current($arr);
????????}
????}
????die(var_dump($filepath));

這樣可以了,試一下

查看完整回答
反對 回復 2016-08-06
  • _小_七_
    _小_七_
    如果有多個鍵值對呢?arr里面有一百個鍵值對呢 你這樣一開始就知道要匹配的是第二個了 用next()函數當然沒問題,用next()的話,for循環的意義已經沒有了 你for循環都不會自己循環了要next來偏移
?
Caballarii

TA貢獻1123條經驗 獲得超629個贊

$filepath='';
for($i?=?0,?$n?=?count($arr);$i?<?$n;?$i++){
????????if($data?==?key($arr)){
????????????$filepath?=?current($arr);
????????}
????}
die(var_dump($filepath));

大概是這樣吧,循環里定義的變量只能在循環當中使用,出了循環就是未定義了,所以要先在循環外面定義一遍

查看完整回答
反對 回復 2016-08-06
  • 4 回答
  • 0 關注
  • 2452 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號