PHP - 仅将“0”的值更改为字符串“免费”
Posted
技术标签:
【中文标题】PHP - 仅将“0”的值更改为字符串“免费”【英文标题】:PHP - Change only value with '0' to string 'Free' 【发布时间】:2022-01-17 11:55:06 【问题描述】:我只是简化了 JSON 数据,因为我只需要其中的两个值。正如您在下面的代码中看到的那样,我过滤了我需要的内容,但在某些值中为 0,并且在输出中只有该零需要作为新值“免费”。
这是我现在得到的代码:
$json = '["Number":"333567","Cost":0,"Number":"333568","Cost":7500,"Number":"333569","Cost":7500]';
$options = json_decode($json, true);
$newArray = [];
foreach ($options as $key => $value)
$newArray[$value['Number']]= $value['Number']." "."£".$value['Cost'] / 100;
echo '<br>';
echo '<br>';
print_r($newArray);
我得到的结果是:
Array ( [333567] => 333567 £0 [333568] => 333568 £75 [333569] => 333569 £75 )
但我只需要 £0 像这样免费输出:
Array ( [333567] => 333567 Free [333568] => 333568 £75 [333569] => 333569 £75 )
【问题讨论】:
【参考方案1】:$newArray[$value['Number']]= $value['Number']." ".($value['Cost'] / 100 == 0 ? 'Free': "£".$value['Cost'] / 100);
希望能解决你的问题
【讨论】:
我尝试在 'Free' 和 $value['Cost'] / 100$newArray[$value['Number']]= $value['Number']." "."<br /> <span>".($value['Cost'] / 100 == 0 ? 'Free' : "&pound;".($value['Cost'] / 100)."</span>");
周围添加 span 标签,但我将 span 嵌套到循环中并且无法渲染封闭标签,尝试了很多东西,但没有...【参考方案2】:
你可以试试 $value['Cost'] / 100 > 0 吗? $value['Cost'] : '免费' 你的代码在下面
$json = '["Number":"333567","Cost":0,"Number":"333568","Cost":7500,"Number":"333569","Cost":7500]';
$options = json_decode($json, true);
$newArray = [];
foreach ($options as $key => $value)
$newArray[$value['Number']]= $value['Number']." "."£".($value['Cost'] / 100 > 0 ? $value['Cost'] : 'free');
echo '<br>';
echo '<br>';
print_r($newArray);
【讨论】:
足够接近了,但£ 显示为免费,谢谢哥们! @Muhammad Atif Akram 给出正确的解决方案。【参考方案3】:如果我正确理解了这个问题,你会想要替换
$newArray[$value['Number']]= $value['Number']." "."£".$value['Cost'] / 100;
与
$priceLabel = ($value['Number'] == 0 ? 'Free' : $value['Number'] . " £");
$newArray[( $value['Number'] )] = $priceLabel . ($value['Cost'] / 100);
【讨论】:
以上是关于PHP - 仅将“0”的值更改为字符串“免费”的主要内容,如果未能解决你的问题,请参考以下文章
你能把 null 的本地 dexie DB 值更改为一个没有值的字符串吗
KeyError:在熊猫中尝试使用.loc方法将布尔列值更改为字符串时