作者kerash (K.T)
看板PHP
标题Re: [请益] 变数转阵列
时间Tue Apr 3 23:09:31 2012
※ 引述《o500521 (poet)》之铭言:
: 大家好
: 今天小弟又有个问题了
: ex: $r2= 45.1 55.2 85.9 25.1(不一定是这样数字 看到时程式跑出来的值)
: 小弟写...
: $r2a=array($r2)
: foreach ($r2a as $key => $value)
: echo "{$key}=$value \n" ;
: 期望...$key可以 跟着$r2的变数的各数跟着跑
: $key的部分一直保持在0的位置没有跑 ,请问各位大大们
: 小弟该怎麽做呢!?烦恼好几天 没有想法...
直接解题吧,我想真的不是上一个回复的那种想法...
(基本上会用 array 了不可能不懂 array(xx,xx,xx) 的写法..)
前提猜测原PO有一段程式会跑数据,接着每跑出一段数据就把它串成字串
(当然不排除是抓远端产生的资料)
所以就会有类似$r2 = "45.1_55.2_85.9_25.1"; (底线是空白)
而原PO的错误在於直接把它定义成阵列
也就是
$r2a=array($r2) 这段,这样直接产生的结果会变成
Array (
[0] => "45.1_55.2_85.8_25.1"
)
若这样来跑 foreach 也只会产生 45.1....25.1 的字串
key 当然也只会有 0 而已
如果原本的意思是要拆成阵列後取得每个笔数的值,
那就得先确认要怎麽拆分,在此假设是以空白当成区隔
我们可以用 explode () 这个 function
array explode ( string $delimiter , string $string [, int $limit ] )
delimiter 就是要做为拆解的符号,使用空白 " "
string 就是你的字串
limit 代表你要拆多长(假设2就代表出来结果的阵列会有两笔)
原CODE 修改
$r2 = "45.1 55.2 85.8 25.1";
$r2a = explode(" ",$r2);
foreach($r2a as $key => $value) {
echo "{$key} = $value";
}
...
如果这样还会错意思就请原PO快点出来解释吧 囧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.186.193
1F:→ MOONRAKER:php大猜谜!谁会猜对呢? :D 04/04 01:14
2F:→ kuAIpAI:选我选我选我~~~ 04/04 12:55
3F:→ hSATAC:我选你,你回家吃药好吗? 04/05 18:09