PHP如何把这样的文本内容转成数组?
文本内容如下:1=test2=test23=test3因为知道一个变量的值为数字,比如我需要知道变量值为1的时候,显示等号右边对应的字符串,也就是已知变量值为1的时候,取...
文本内容如下:
1=test
2=test2
3=test3
因为知道一个变量的值为数字,比如我需要知道变量值为1的时候,显示等号右边对应的字符串,也就是已知变量值为1的时候,取出等号右边的test值
请高手赐教
实际代码情况类似如下:
一个字符串内容为:1.1=test 1.2=test2 1.3=test3
已知一个变量值为1,我希望直接echo 出 "1.1="后面的test 展开
1=test
2=test2
3=test3
因为知道一个变量的值为数字,比如我需要知道变量值为1的时候,显示等号右边对应的字符串,也就是已知变量值为1的时候,取出等号右边的test值
请高手赐教
实际代码情况类似如下:
一个字符串内容为:1.1=test 1.2=test2 1.3=test3
已知一个变量值为1,我希望直接echo 出 "1.1="后面的test 展开
展开全部
$filepath = 'your.txt';
$ret = array();
$f = fopen($filepath, 'r');
if(!$f){
CLog::warning('file ['.$filepath.'] no exist!');
return $ret;
}
while (!feof($f)) {
$line = fgets($f);
if ($line) {
$record = trim($line);
if (empty($record)) {
continue;
}
$tmpRes = explode('=',$record);
if (count($tmpRes) < 2) {
continue;
}
$ret[$tmpRes[0]] = $tmpRes[1];
}
}
var_dump($ret);
我测过了,运行正常,楼主记得采纳哦,亲
追问
你好,感谢这么快给我解答。
实际代码情况类似如下:
一个字符串内容为:1.1=test 1.2=test2 1.3=test3
已知一个变量值为1.1,我希望直接echo 出 "1.1="后面的test
数组我不太熟悉,感谢你的帮忙
如能解决,再追加50分以表感谢
追答
$str = '1.1=test 1.2=test2 1.3=test3';
$key = '1.1';
$tmpArr = explode(' ',$str);
$arrData = array();
for($i = 0 ; $i < count($tmpArr); $i++) {
$tmpData = explode('=', $tmpArr[$i]);
$arrData[$tmpData[0]] = $tmpData[1];
//也可以在这里判断然后直接输出,看你具体的逻辑需要
}
var_dump($arrData[$key]);
展开全部
<?php
$str="1=test
2=test2
3=test3";//需要分割的字符串
$strpt="/(\d*=\w*)\b/u";//匹配数值-字符串对的pattern
preg_match_all($strpt,$str,$result,PREG_PATTERN_ORDER);
$resultarray=array();
foreach($result[1] as $v){
$temarray=explode("=",$v);//把匹配到的子组元素按照“=”号分开为数字和字符串
$resultarray[$temarray[0]]=$temarray[1];//以数字为键字符串为值的元素添加到结果数组
}
print_r($resultarray);
?>
上面的代码测试过了 得到的结果数组你自己看看然后根据键值判断一下得到值就可以了
$str="1=test
2=test2
3=test3";//需要分割的字符串
$strpt="/(\d*=\w*)\b/u";//匹配数值-字符串对的pattern
preg_match_all($strpt,$str,$result,PREG_PATTERN_ORDER);
$resultarray=array();
foreach($result[1] as $v){
$temarray=explode("=",$v);//把匹配到的子组元素按照“=”号分开为数字和字符串
$resultarray[$temarray[0]]=$temarray[1];//以数字为键字符串为值的元素添加到结果数组
}
print_r($resultarray);
?>
上面的代码测试过了 得到的结果数组你自己看看然后根据键值判断一下得到值就可以了
更多追问追答
追问
你好,感谢这么快给我解答。
实际代码情况类似如下:
一个字符串内容为:1.1=test 1.2=test2 1.3=test3
已知一个变量值为1,我希望直接echo 出 "1.1="后面的test
数组我不太熟悉,感谢你的帮忙
如能解决,再追加50分以表感谢
追答
传入1 输出的是1.1对应的? 还是说传入1.1
function getStr($index){//传入的参数就是1.1或者1.2
$str="1.1=test
1.2=test2
1.3=test3";//需要分割的字符串
$strpt="/(\d*.\d*=\w*)\b/u";//匹配数值-字符串对的pattern
preg_match_all($strpt,$str,$result,PREG_PATTERN_ORDER);
$resultarray=array();
foreach($result[1] as $v){
$temarray=explode("=",$v);//把匹配到的子组元素按照“=”号分开为数字和字符串
if($index==$temarray[0]){
echo $temarray[1];
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-02
展开全部
内容呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-02
展开全部
内容在哪?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-02
展开全部
内容是null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询