Php 从中删除0以获取结果
目前,我正在搞乱SoundCloud的API,它返回的东西看起来像这样Php 从中删除0以获取结果,php,Php,目前,我正在搞乱SoundCloud的API,它返回的东西看起来像这样 0. HotBox Michael da Vinci Prod Free P.mp3 https://api.soundcloud.com/tracks/373337717/stream?client_id=OURID 1. LSSR Chris P Prod Jake Knight.mp3 https://api.soundcloud.com/tracks/373336760/stream?client_id=OURID
0. HotBox Michael da Vinci Prod Free P.mp3
https://api.soundcloud.com/tracks/373337717/stream?client_id=OURID
1. LSSR Chris P Prod Jake Knight.mp3
https://api.soundcloud.com/tracks/373336760/stream?client_id=OURID
这与代码的显示方式一样正常,这里是我打印结果的方式(非常混乱,但我只是胡闹)
for($i=0;isset($house[$i]);$i++){
$b1=$house[$i]['title'];
$b2=$house[$i]['stream_url'];
打印“
”;打印“
”;
$title=preg_replace('/[^a-zA-Z0-9\s]/','',带标签($b1));
打印“.$i.”.$title.”.mp3';
打印“
”;
打印$stream=''.$b2'?客户端id=OURID';
}
现在我想知道的是,在任何情况下,我们如何使
0.
作为1.
返回,并继续向上计数,直到到达for循环的末尾,而不是删除0.
数据,而只是更改数字。根据注释和您对尝试执行操作的描述,听起来您只需要添加另一个迭代变量:
# Add another variable
$a = 1;
for ($i = 0; isset($house[$i]); $i++) {
$b1 = $house[$i]['title'];
$b2 = $house[$i]['stream_url'];
$title = preg_replace('/[^a-zA-Z0-9\s]/', '', strip_tags($b1));
echo '<br><br>';
# Here you have the $a show up starting at 1
echo ''.$a.'. '.$title.'.mp3<br>';
echo $stream = ''.$b2.'?client_id=OURID';
# Auto increment here
$a++;
}
#添加另一个变量
$a=1;
对于($i=0;isset($house[$i]);$i++){
$b1=$house[$i]['title'];
$b2=$house[$i]['stream_url'];
$title=preg_replace('/[^a-zA-Z0-9\s]/','',带标签($b1));
回音“
”;
#这是1美元一场的表演
回音“.$a..$title..mp3
”;
echo$stream=''.$b2'?客户端id=OURID';
#这里自动递增
$a++;
}
我建议使用在循环中声明$I计数器的foreach循环,并在运行时将其递增
未测试代码:
foreach ($house as $i=>$row){
echo '<br><br>',++$i,'. ',preg_replace ('/[^a-z\d\s]+/i','',strip_tags ($row ['title'])),".mp3<br>{$row ['stream_url']}?client_id=OURID";
}
foreach($i=>$row){
回显“
,++$i”,”,preg_replace(“/[^a-z\d\s]+/i“,”,strip_标记($row['title']),“.mp3
{$row['stream\u url']}?client_id=OURID”;
}
p、 我已经改进了正则表达式模式,并消除了所有的单用途变量声明。如果你愿意,你可以把它分成许多行
如果要避免第一次迭代的双断点标记
foreach ($house as $i=>$row){
if($i) echo '<br><br>'; // if $i is not 0
echo ++$i,'. ';
echo preg_replace ('/[^a-z\d\s]+/i','',strip_tags ($row ['title']));
echo ".mp3<br>{$row ['stream_url']}?client_id=OURID";
}
foreach($i=>$row){
if($i)回显“
”;//如果$i不是0
echo++$i'”;
echo preg_替换('/[^a-z\d\s]+/i','',带标签($row['title'));
echo“.mp3
{$row['stream\u url']}?client\u id=OURID”;
}
不太清楚你在问什么,因为打印出0、1等的不是API,而是你的代码。你正在打印你的循环号。当你打印的时候,你就不能在上面加上1吗?@DavidMakogon我想他是在要求循环从1开始。。这有点confusing@Herbo是 啊让循环从1开始没有任何意义-OP是从一个数组读取的,该数组将是基于0的。@DavidMakogon我理解他试图做什么,但也不确定我将如何执行它。。很确定他使用了$i
字符串来指示播放列表中的曲目编号,因为他返回了两个结果。播放列表通常从1
开始,所以他试图找到一个替代使用$i
的方法。。
foreach ($house as $i=>$row){
if($i) echo '<br><br>'; // if $i is not 0
echo ++$i,'. ';
echo preg_replace ('/[^a-z\d\s]+/i','',strip_tags ($row ['title']));
echo ".mp3<br>{$row ['stream_url']}?client_id=OURID";
}