PHP数组-删除逗号,If else语句


PHP Array - Remove Comma, If else statement

我对数组还比较陌生,为了简洁地解决我的问题,我很难处理大量的信息。这是我所取得的进步。

我的代码:

<?php 
$imagearrdisplay = ",8,7,22,";
$displayitem = explode(",", $imagearrdisplay);
for($i = 0; $i < count($displayitem); $i++){
echo "
<div class='banner'><img src='/images/transitions/$displayitem[$i].jpg' /></div>
Count: $i = $displayitem[$i] ";
}
?>

它当前返回的结果为:

<div class='banner'><img src='/images/transitions/.jpg' /></div>
Count: 0 =  
<div class='banner'><img src='/images/transitions/8.jpg' /></div>
Count: 1 = 8 
<div class='banner'><img src='/images/transitions/7.jpg' /></div>
Count: 2 = 7 
<div class='banner'><img src='/images/transitions/22.jpg' /></div>
Count: 3 = 22 
<div class='banner'><img src='/images/transitions/.jpg' /></div>
Count: 4 =  

我想实现以下目标:

  1. 要删除图像阵列中的第一个和最后一个逗号,请在它爆炸时显示,这样我就不会在开头和结尾出现空白图像。

  2. 随机排列阵列的结果

  3. 执行if/else函数来查找[0]并调整第一个结果,这样我就可以使用css对图像进行相应的样式设置。

然后能够产生这样的结果:

<div class='firstbanner'><img src='/images/transitions/22.jpg' /></div>
<div class='banner'><img src='/images/transitions/7.jpg' /></div>
<div class='banner'><img src='/images/transitions/8.jpg' /></div

我知道这是可能的,尽管在迷宫般的导师中挣扎。如有任何帮助,我们将不胜感激。

尝试使用:

$imagearrdisplay = trim(',8,7,22,', ',');
$displayitem = explode(',', $imagearrdisplay);
shuffle($displayitem);

要检查元素是否是第一个,只需执行:

if ( $i == 0 ) {}

使用trim删除左侧和右侧的,。使用shuffle对阵列进行随机化。

对于输出,将$class变量初始化为第一个类,然后迭代所有数字,在第一项之后将$class设置为正常类:

$imagearrdisplay = ",8,7,22,";
$displayitem = explode(",", trim($imagearrdisplay, ','));
shuffle($displayitem);
$class = 'firstbanner';
foreach($displayitem as $item)
{
   $src = sprintf('/images/transitions/%d.jpg', $item);
   printf("<div class='"%s'">'n  <img src='"%s'">'n</div>'n", $class, $src);
   $class = 'banner';
}

演示

注意:如果使用最新的CSS版本,则可以使用:first-child伪类识别第一个横幅。

  1. preg_split可用于拆分,使其丢弃空碎片:$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

  2. PHP可以进行数组随机化。

  3. 为此,像$array[0] = str_replace(..)(我想是第一个元素(这样的东西就足够了。

  1. 解决这个问题的一个简单方法是在将字符串拆分为数组之前更改字符串,例如使用trim($imagearrdisplay, ',')。但是,由于您要求一种删除第一个和最后一个值的方法,请查看array_pop()array_shift()

  2. 要随机化数组中的内容,可以使用shuffle()

  3. 要获得第一个元素,可以在$i上使用if语句。if($i == 0) {

你试过ltrim吗?http://php.net/manual/en/function.ltrim.php

$imagearrdisplay = ltrim(",8,7,22,", ",");

此外,您可以使用shuffle来随机化您的数组:http://php.net/manual/en/function.shuffle.php

要设置第一个图像的样式,可以使用CSS。

.banner:first-child
{ 
background-color:yellow;
height:50px
width:50px
}
<div class='banner'><img src='/images/transitions/22.jpg' /></div>
<div class='banner'><img src='/images/transitions/7.jpg' /></div>
<div class='banner'><img src='/images/transitions/8.jpg' /></div>

演示:http://jsfiddle.net/Sapphion/dBDqh/

function trim_comma($string) {
    $string = ($string[0] == ',') ? substr($string, 1, strlen($string)) : $string;
    $string = ($string[strlen($string) - 1] == ',') ? substr($string, 0, strlen($string) - 1) : $string;
    return $string;
}
echo trim_comma(",test,");

//测试

这将删除开头和结尾的逗号。