2 回答
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
<?php
$str = '1@A|||5@B|||6@C|||4@D|||2@E|||3@F|||7@G|||8@H|||';
##---------正則表達(dá)式方法
//這是你要的結(jié)果數(shù)組
$result = array();
preg_match_all('/(\d+)@(\w+)/', $str, $matchs);
#print_r($matchs);//你能明白$matchs是什么東西
foreach ($matchs[0] as $i=>$tmp){
//$matchs[1][$i] 就是1 $matchs[2][$i] 就是A
$result[$matchs[1][$i]] = $matchs[2][$i];
}
print_r($result);
unset($result);
#--------字符串方法
#以|||分割成1@A
$ps = split("\|\|\|", $str);
#var_dump($matchs);
foreach ($ps as $s){
//以@分割1@A=> 1, A
if(!$s){
continue;
}
list($num, $word) = split("@", $s);
$result[$num] = $word;
}
print_r($result);
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
|||為分割符,
explode — 使用一個(gè)字符串分割另一個(gè)字符串
說明
array explode ( string $separator , string $string [, int $limit ] )
此函數(shù)返回由字符串組成的數(shù)組,每個(gè)元素都是 string 的一個(gè)子串,它們被字符串 separator 作為邊界點(diǎn)分割出來。如果設(shè)置了 limit 參數(shù),則返回的數(shù)組包含最多 limit 個(gè)元素,而最后那個(gè)元素將包含 string 的剩余部分。
用這個(gè)得到個(gè)函數(shù)
在循環(huán)函數(shù)
在循環(huán)體里面
用split(search,$str[,int]):把$str按search字符進(jìn)行分割返回?cái)?shù)組int是分割幾
或者
strtok(原字符,分割符):每次分割一小塊,它根據(jù)分割符的每個(gè)字符來分割;
分割每個(gè)數(shù)組元素 得到一個(gè)新的數(shù)組
在定義一個(gè)數(shù)組,把的到的新的數(shù)組的2個(gè)元素分別賦給定義數(shù)組的鍵值,和值
$a=explode("1@A|||5@B|||6@C|||4@D|||2@E|||3@F|||7@G|||8@H|||","|||");
foreach($a as $value){
$b=explode($value,"@");
$c[$b[0]]=$b[1];
}
行了
我可能寫的不對(duì) ,但是思路是這樣的,你自己想想
- 2 回答
- 0 關(guān)注
- 121 瀏覽
添加回答
舉報(bào)
