【发布时间】:2020-03-06 12:59:39
【问题描述】:
我想从 api 请求中获取数据。我查询了oc52的值。获取 $date 数组。发行服务器添加 MH 前缀。它相对于名称生成自身。我正在尝试使用该类提取数组的一部分。
这是我查询时得到的数组:
$data = [
[
'product' => 'CH C104.12',
'brand' => 'CH C104.12',
'price' => 12.34,
],
[
'product' => 'MH OC52',
'brand' => 'MH OC52',
'price' => 56.78,
],
[
'product' => 'WX WL7074-12',
'brand' => 'WX WL7074-12',
'price' => 90.12,
],
];
这是我正在搜索的课程
class ProductFilterIterator extends \FilterIterator
{
protected $filter;
public function __construct(\Iterator $iterator, $filter)
{
$this->filter = $filter;
parent::__construct($iterator);
}
public function accept() : bool
{
$current = $this->getInnerIterator()->current();
return $current['product'] == $this->filter;
}
}
$iterator = (new \ArrayObject($data))->getIterator();
$filter1 = new ProductFilterIterator($iterator, 'OC52');
foreach ($filter1 as $data) {
echo "<pre>";
var_dump($data);
echo "</pre>";
}
什么都没有反映?如果我写在 MH OC52 行:
$filter1 = new ProductFilterIterator($iterator, 'MH OC52');
然后一切正常。 前面不知道怎么实现-MH???
【问题讨论】:
-
只是为了检查 - 是否只是检查以值结尾的字符串(例如 OC52),
-
如何找到MH并排队:
code$filter1 = new ProductFilterIterator($iterator, 'MH OC52');?code
标签: php arrays function class foreach