Php 用逗号表示值
我不知道我的方法是否正确,但我需要Php 用逗号表示值,php,Php,我不知道我的方法是否正确,但我需要$explode2逗号分隔结果 尝试使用内爆,但我做到了 有人会给我一个提示吗 <?php $variavel = "2:2014-07-13,4:2014-08-13,6:2014-08-13,7:2014-08-13"; $var = explode(",", $variavel); $total_var = count($var); $n = 0; while($n < $total_var){ $var[$n]; while
$explode2
逗号分隔结果
尝试使用内爆,但我做到了
有人会给我一个提示吗
<?php
$variavel = "2:2014-07-13,4:2014-08-13,6:2014-08-13,7:2014-08-13";
$var = explode(",", $variavel);
$total_var = count($var);
$n = 0;
while($n < $total_var){
$var[$n];
while($n < $total_var){
$explode2 = explode(":", $var[$n]);
$explode2 = $explode2[0];
print $explode2; //Result: 2467 | How would: 2,4,6,7
$n++;
}
$n++;
}
?>
使用当前代码(我不打算验证它),只需将每个数字保存到一个数组元素中,然后在结尾处内爆
:
$variavel = "2:2014-07-13,4:2014-08-13,6:2014-08-13,7:2014-08-13";
$var = explode(",", $variavel);
$total_var = count($var);
$n = 0;
while($n < $total_var){
//$var[$n]; //what???
while($n < $total_var){
$explode2 = explode(":", $var[$n]);
$explode2 = $explode2[0];
$result[] = $explode2; //save to an array
$n++;
}
$n++;
}
echo implode(",", $result); //implode with ,
您可以尝试这样的方法(在循环中) 但您必须检查循环何时结束,以消除最后一个逗号。 最后,您可以添加:
echo $explode2;
我不确定您到底需要什么,但我会生成一个结果数组,其中数字是键,日期是值。然后,如果需要,可以使用
array_keys()
获取密钥:
$variavel = "2:2014-07-13,4:2014-08-13,6:2014-08-13,7:2014-08-13";
$var = explode(",", $variavel);
$results = array();
foreach ($var as $value)
{
$tmp = explode(':', $value);
$results[$tmp[0]] = $tmp[1];
}
// the string you want
$str = implode(',', array_keys($results));
当然,这只有在数字/键是唯一的情况下才有效。外部循环没有意义,只需使用一个循环,将值保存到数组中,然后内爆:
$variavel = "2:2014-07-13,4:2014-08-13,6:2014-08-13,7:2014-08-13";
$var = explode(",", $variavel);
$values = array();
foreach ($var as $value) {
$exp = explode(':', $value);
$values[]=$exp[0];
}
echo implode(',', $values);
如果您只需要
2,4,6,7
,那么为什么不获取的索引:“
然后获取字符或子字符串索引-1
?以下是解决方案:
$variavel = "2:2014-07-13,4:2014-08-13,6:2014-08-13,7:2014-08-13";
$var = explode(",", $variavel);
$total_var = count($var);
$n = 0;
while($n < $total_var){
$explode2 = explode(":", $var[$n]);
$tempArray[] = $explode2[0];
$n++;
}
$tempString=implode(',',$tempArray);
echo $tempString;
$variavel=“2:2014-07-13,4:2014-08-13,6:2014-08-13,7:2014-08-13”;
$var=explode(“,”,$variavel);
$total_var=计数($var);
$n=0;
而($n<$total\u var){
$explode2=explode(“:”,$var[$n]);
$tempArray[]=$2[0];
$n++;
}
$tempString=内爆(“,”,$tempArray);
echo$tempString;
有关代码的其他详细信息
1) 您不需要第一个while循环。我不知道你打算在那里做什么,但这是多余的
2) 您得到的是2467
而不是2,4,6,7
的原因是您在while循环中打印,没有换行或空白。每个循环迭代的$explode2
值如下:
2.
4.
6.
7.
当您将它们一起打印出来时,它将显示为
2467
$var[$n]代码>这到底是做什么的?打印$explode2'代码>@Debflav我理解它的功能,但它本身并没有位置。这类似于键入true
或“字符串”代码>并希望它能起作用。为什么在while
中使用while
?
$variavel = "2:2014-07-13,4:2014-08-13,6:2014-08-13,7:2014-08-13";
$var = explode(",", $variavel);
$values = array();
foreach ($var as $value) {
$exp = explode(':', $value);
$values[]=$exp[0];
}
echo implode(',', $values);
$variavel = "2:2014-07-13,4:2014-08-13,6:2014-08-13,7:2014-08-13";
$var = explode(",", $variavel);
$total_var = count($var);
$n = 0;
while($n < $total_var){
$explode2 = explode(":", $var[$n]);
$tempArray[] = $explode2[0];
$n++;
}
$tempString=implode(',',$tempArray);
echo $tempString;