以下代码自动找到页面上的最高价:
$vw_link = get_field('shop_link');
$ch = curl_init($vw_link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$cl = curl_exec($ch);
$dom = new DOMDocument();
@$dom->loadHTML($cl);
$xpath = new DOMXpath($dom);
$price = $xpath->query("//span[@class='price']");
foreach($price as $value) {
$vw_array[] = floatval(str_replace('$', '', $value->nodeValue));
update_field('shop_price',max($vw_array));
}
最好的做法是切片奶酪,如果它可以返回$ vw_array中介于特定数量(即,大于100和小于200)之间的值,那么棘手的部分将是返回100之后的第一个最大数字,如果100-200之间有多个数字。
例如(如果以下价格全部包装在“价格”类中):
$88
$92
$105 <-- return this number
$125
$180
$210
有谁知道如何唤起如此宏伟的功能?
最佳答案
function getHighestValue($arr, $high = 200, $low =100) {
$data = $arr;
// sort it so you can find 1st highest value in range
asort($data);
foreach ($data as $item) {
//trim dollar sign as i can see from your example
$item = ltrim($item, "$");
if ($item >= $low && $item <= $high) {
return $item;
}
}
return false;
}
因此,如果您的数据是
$arr = [
'$140',
'$22',
'$143',
'$199',
];
var_dump(getHighestValue($arr)); // will return 140
您也可以在那之后添加美元符号
关于php - 返回数组中大于X的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27997309/