? $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);
?>
羅夜夜
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));這樣可以了,試一下
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));大概是這樣吧,循環里定義的變量只能在循環當中使用,出了循環就是未定義了,所以要先在循環外面定義一遍
- 4 回答
- 0 關注
- 2475 瀏覽
添加回答
舉報
0/150
提交
取消
