我有这样的代码:
$arr = json_decode($jsondata, TRUE);
$arr2 = $arr['items']['item'];
echo '<ul>';
foreach ($arr2 as $val) {
echo '<li>'.$val[description].'</li>';
}
echo '</ul>';
输出:- Ann (24/05/2014 - 23/05/2015)
- 滞纳金(新增18/05/2014)
我只是想将'Ann'存储在变量$plan中。我似乎无法完成这件事。我该怎么做呢?
我认为你想在第一个"("之前得到所有东西。这并不一定是前3个字符。
function get_everything_before_paren_open($str)
{
$p = strpos($str, '(');
if($p === FALSE) {
return $p;
} else {
return rtrim(substr($str, $p-1));
}
}
那么你可以把你的代码写成
$arr = json_decode($jsondata, TRUE);
$arr2 = $arr['items']['item'];
echo '<ul>';
foreach ($arr2 as $val) {
$plan = get_everything_before_paren_open($val["description"]);
echo '<li>'.$plan.'</li>';
// Position 1
}
echo '</ul>';
这将输出
- 安
- 滞纳金
如果您只想输出"Ann",只需在代码中添加break;
而不是// Position 1
。然后将"Ann"放入$plan
中。
顺便说一下,你应该引用"description"
首先,我要稍微清理一下PHP代码。你不应该在PHP中编写纯HTML。
<?php
$arr = json_decode($jsondata, TRUE);
$arr2 = $arr['items']['item'];
?>
<ul>
<?php foreach ($arr2 as $val): ?>
<?php $plan = explode('(', $val[description])[0] ?>
<li><?php echo $val[description] ?></li>
<?php endforeach ?>
</ul>
对于explode('(', $val[description])[0])
,您可以在(
之前获得第一部分。$plan
将替换Ann
,第一次迭代后替换Late Fee
。