這個(gè)問題困擾了我?guī)滋觳荒芩X了!怎么重新組合成新格式呢?
內(nèi)容隨意寫的。主要是格式!
sitePerEpisode 后面的數(shù)字 是集數(shù)
數(shù)據(jù)庫內(nèi)容:
$ceshi='優(yōu)酷視頻$$第1集$http://v.youku.com/$youku#第2集$http://v.youku.com/v_show$youku#第3集$http://v.youku.com/$$$芒果視頻$$第1集$http://vmguo.com$mgtv#第2集$http://v.mangguo.com$mgtv#第3集$http://v.mangguo.com$mgtv';
需要變成的格式
{
"sitePerEpisode": {
"1": [
{
"siteSource": "youku",
"siteName": "優(yōu)酷視頻",
"siteLink": "http://v.youku.com/"
},
{
"siteSource": "mgtv",
"siteName": "芒果視頻",
"siteLink": "/video/?34-1-0.html"
}
],
"2": [
{
"siteSource": "youku",
"siteName": "優(yōu)酷視頻",
"siteLink": "/video/?34-0-1.html"
},
{
"siteSource": "mgtv",
"siteName": "芒果視頻",
"siteLink": "/video/?34-1-1.html"
}
],
"3": [
{
"siteSource": "youku",
"siteName": "優(yōu)酷視頻",
"siteLink": "/video/?34-0-2.html"
},
{
"siteSource": "mgtv",
"siteName": "芒果視頻",
"siteLink": "/video/?34-1-2.html"
}
]
}
}
以前是按播放源 a視頻 1 2 3 b視頻 1 2 3 c視頻 1 2 3
現(xiàn)在要求是 按集數(shù)
1 a視頻 b視頻 c視頻 2 a視頻 b視頻 c視頻 3 a視頻 b視頻 c視頻
你的變量$ceshi好像錯(cuò)了我改了一下,不知道對不對
//錯(cuò)誤的
$ceshi='優(yōu)酷視頻$$第1集$http://v.youku.com/$youku#第2集$http://v.youku.com/v_show$youku#第3集$http://v.youku.com/$$$芒果視頻$$第1集$http://vmguo.com$mgtv#第2集$http://v.mangguo.com$mgtv#第3集$http://v.mangguo.com$mgtv';
//我?guī)湍阈薷牧?,其中少?youku這一部分
$ceshi='優(yōu)酷視頻$$第1集$http://v.youku.com/$youku#第2集$http://v.youku.com/v_show$youku#第3集$http://v.youku.com/$youku$$$芒果視頻$$第1集$http://vmguo.com$mgtv#第2集$http://v.mangguo.com$mgtv#第3集$http://v.mangguo.com$mgtv';
$result_array = array();
$temp = explode('$$$',$ceshi);
//var_dump($temp);
foreach($temp as $key=>$value){
$temp_array = (explode('$$',$value));
//當(dāng)前的類別
$category = $temp_array[0];
//內(nèi)容再次進(jìn)行歸類
$temp_array = explode('#',$temp_array[1]);
foreach($temp_array as $key=>$value){
//當(dāng)前的集數(shù)
$temp_value = explode('$',$value);
$ep_number = preg_replace('/(第)||(集)/','',$temp_value[0]);
//需要壓入的數(shù)組
$temp_result['siteSource']= $temp_value[2];
$temp_result['siteName']= $category;
$temp_result['siteLink']= $temp_value[1];
//壓入結(jié)果數(shù)組
$result_array["sitePerEpisode"][$ep_number][]=$temp_result;
}
}
//$result_array為你要的結(jié)果,你可以var_dump看一下
//var_dump($result_array);
//將結(jié)果數(shù)組轉(zhuǎn)化為json,中文字符會被轉(zhuǎn)化
$json_result = json_encode($result_array,true);
echo $json_result;
未轉(zhuǎn)化為json的array結(jié)果
array(1) {
["sitePerEpisode"]=>
array(3) {
[1]=>
array(2) {
[0]=>
array(3) {
["siteSource"]=>
string(5) "youku"
["siteName"]=>
string(12) "優(yōu)酷視頻"
["siteLink"]=>
string(19) "http://v.youku.com/"
}
[1]=>
array(3) {
["siteSource"]=>
string(4) "mgtv"
["siteName"]=>
string(12) "芒果視頻"
["siteLink"]=>
string(16) "http://vmguo.com"
}
}
[2]=>
array(2) {
[0]=>
array(3) {
["siteSource"]=>
string(5) "youku"
["siteName"]=>
string(12) "優(yōu)酷視頻"
["siteLink"]=>
string(25) "http://v.youku.com/v_show"
}
[1]=>
array(3) {
["siteSource"]=>
string(4) "mgtv"
["siteName"]=>
string(12) "芒果視頻"
["siteLink"]=>
string(20) "http://v.mangguo.com"
}
}
[3]=>
array(2) {
[0]=>
array(3) {
["siteSource"]=>
string(5) "youku"
["siteName"]=>
string(12) "優(yōu)酷視頻"
["siteLink"]=>
string(19) "http://v.youku.com/"
}
[1]=>
array(3) {
["siteSource"]=>
string(4) "mgtv"
["siteName"]=>
string(12) "芒果視頻"
["siteLink"]=>
string(20) "http://v.mangguo.com"
}
}
}
}
兄弟,你這個(gè)排版真的讓人沒有幫你的欲望。。。而且你貼的json還格式錯(cuò)誤,更沒法幫了,還是先把問題排版改改吧。
上面的兄弟已經(jīng)回答過了,我這邊有另一種思路,算是php的黑科技,你也可以用來參考
function formatSite($site_str) {
$sites_info = explode('$$$', $site_str);
$result = [];
foreach ($sites_info as $site_info) {
list($site_name, $info) = explode('$$', $site_info);
array_map(function ($item) use (&$result, $site_name) {
preg_match('/.*(\d).*\$(.*)\$(.*)/', $item, $matched);
list($number, $site_link, $site_source) = array_slice($matched, 1);
$result['sitePerEpisode'][$number][] = [
'siteSource'=>$site_source,
'siteName'=>$site_name,
'siteLink'=>$site_link
];
}, explode('#', $info));
}
return $result;
}
$str = '優(yōu)酷視頻$$第1集$http://v.youku.com/$youku#第2集$http://v.youku.com/v_show$youku#第3集$http://v.youku.com/$youku$$$芒果視頻$$第1集$http://vmguo.com$mgtv#第2集$http://v.mangguo.com$mgtv#第3集$http://v.mangguo.com$mgtv';
$result = formatSite($str);
思路是一樣的,而且邏輯上那位兄弟的解答更清晰,我只是用了一些黑科技
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。