在我的电子商务中,我有一些购物方式,我想显示一些字符串,这些字符串取决于用户在我的网站上购物的各种方式。
我有一个数组来显示用户在我的网站上购物的所有方式,但是这些方式来自于一个单独的字符串,其中的,
是分开的。
数组看起来像
$array = [
array(
'userShop' => '1,0,0',
'userId' => 245
),
array(
'userShop' => '1,1,1',
'userId' => 12
),
array(
'userShop' => '0,1,0',
'userId' => 25
)
];
数组索引userShop
中的-第一个INT表示POS
存放,第二个INT表示card deposit
,第三个INT表示cash deposit
。 0
的意思是不要走这种路,1的意思是这样走路
我想得到这样的输出:
<p>245</p>
<p>POS</p>
<hr>
<p>12</p>
<p>POS, Cart, Cash</p>
<hr>
<p>25</p>
<p>Cart</p>
<hr>
我可以使用if
和elseif
来完成所有方法和方式,但这确实很无聊。
答案 0 :(得分:0)
您可以应用以下foreach
循环:
$names = ['POS', 'Card', 'Cash'];
foreach($array as $rec){
$nums = explode(',',$rec['userShop']); // explode
$rnames = [];
foreach ($nums as $ind=>$val){ // check each 1 or 0
if ($val) $rnames[] = $names[$ind]; // fill the names
}
// print result
echo '<p>'.$rec['userId'].'</p>'.PHP_EOL.
'<p>'.join(', ',$rnames).'</p>'.PHP_EOL.
'<hr>'.PHP_EOL;
}
输出:
<p>245</p>
<p>POS</p>
<hr>
<p>12</p>
<p>POS, Card, Cash</p>
<hr>
<p>25</p>
<p>Card</p>
<hr>