Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有什么方法可以检查mysql返回数组中的密钥吗?_Php_Mysql_Arrays - Fatal编程技术网

Php 有什么方法可以检查mysql返回数组中的密钥吗?

Php 有什么方法可以检查mysql返回数组中的密钥吗?,php,mysql,arrays,Php,Mysql,Arrays,我需要一些从数组中提取数据的帮助。我有一个数组$prices,其结构如下(从mysql返回): 因此,我需要从给定日期的数组中获取价格,目前我正在执行循环,但我认为这很慢..我不喜欢循环,因为我必须在每个请求中执行大约30次相同的循环(用于每天检查价格)D: 您不需要在数组中进行这样的迭代,将所有日期添加到一个数组中,然后在数组中使用: $my_dates=数组(“2014-09-08”、“2014-09-09”、…); 函数getPriceOfDay($my_dates,$values){ $

我需要一些从数组中提取数据的帮助。我有一个数组
$prices
,其结构如下(从mysql返回):

因此,我需要从给定日期的数组中获取价格,目前我正在执行循环,但我认为这很慢..我不喜欢循环,因为我必须在每个请求中执行大约30次相同的循环(用于每天检查价格)D:


您不需要在数组中进行这样的迭代,将所有日期添加到一个数组中,然后在数组中使用

$my_dates=数组(“2014-09-08”、“2014-09-09”、…);
函数getPriceOfDay($my_dates,$values){
$res=”“;
foreach($value作为$value){
if(在数组中($value['date',$my_dates)){
$res.=“找到:“.$value['date']”代表“.$value['price']”。

”; } } 返回$res; } getPriceOfDay($my_dates,$prices);
此时,您只需传递数组一次,所有结果都将连接到
$res

Array
(
    [0] => Array
        (
            [pricegroup] => doppia
            [date] => 2014-09-01
            [price] => 60
            [id] => 974
        )

    [1] => Array
        (
            [pricegroup] => doppia
            [date] => 2014-09-02
            [price] => 60
            [id] => 975
        ),
    ...
)
    <? 

    $prices = json_decode('[{"pricegroup":"doppia","date":"2014-09-01","price":"60","id":"974"},{"pricegroup":"doppia","date":"2014-09-02","price":"60","id":"975"},{"pricegroup":"doppia","date":"2014-09-03","price":"60","id":"976"},{"pricegroup":"doppia","date":"2014-09-04","price":"70","id":"977"},{"pricegroup":"doppia","date":"2014-09-05","price":"60","id":"978"},{"pricegroup":"doppia","date":"2014-09-06","price":"60","id":"979"},{"pricegroup":"doppia","date":"2014-09-07","price":"60","id":"980"},{"pricegroup":"doppia","date":"2014-09-08","price":"60","id":"981"},{"pricegroup":"doppia","date":"2014-09-09","price":"60","id":"982"},{"pricegroup":"doppia","date":"2014-09-10","price":"60","id":"983"},{"pricegroup":"doppia","date":"2014-09-11","price":"60","id":"984"},{"pricegroup":"doppia","date":"2014-09-12","price":"60","id":"985"},{"pricegroup":"doppia","date":"2014-09-13","price":"60","id":"986"},{"pricegroup":"doppia","date":"2014-09-14","price":"60","id":"987"},{"pricegroup":"doppia","date":"2014-09-15","price":"60","id":"988"},{"pricegroup":"doppia","date":"2014-09-16","price":"60","id":"989"},{"pricegroup":"doppia","date":"2014-09-17","price":"60","id":"990"},{"pricegroup":"doppia","date":"2014-09-18","price":"60","id":"991"},{"pricegroup":"doppia","date":"2014-09-19","price":"60","id":"992"},{"pricegroup":"doppia","date":"2014-09-20","price":"60","id":"993"},{"pricegroup":"doppia","date":"2014-09-21","price":"60","id":"994"},{"pricegroup":"doppia","date":"2014-09-22","price":"60","id":"995"},{"pricegroup":"doppia","date":"2014-09-23","price":"60","id":"996"},{"pricegroup":"doppia","date":"2014-09-24","price":"60","id":"997"},{"pricegroup":"doppia","date":"2014-09-25","price":"60","id":"998"},{"pricegroup":"doppia","date":"2014-09-26","price":"60","id":"999"},{"pricegroup":"doppia","date":"2014-09-27","price":"60","id":"1000"},{"pricegroup":"doppia","date":"2014-09-28","price":"60","id":"1001"},{"pricegroup":"doppia","date":"2014-09-29","price":"60","id":"1002"},{"pricegroup":"doppia","date":"2014-09-30","price":"60","id":"1003"}]',true);



function getPriceOfDay($day,$from) {
  $res;  $loops = count($from)-1;

  for ($i = 0; $i <= $loops; $i++) {

    if($day === $from[$i][date]) {
      $res .= '<p>Found: '.$from[$i][date].' for '.$from[$i][price].'</p>';
    }
  }

  return $res;
}

echo getPriceOfDay('2014-09-01',$prices);
echo getPriceOfDay('2014-09-02',$prices);
echo getPriceOfDay('2014-09-03',$prices);
echo getPriceOfDay('2014-09-04',$prices);
echo getPriceOfDay('2014-09-05',$prices);
echo getPriceOfDay('2014-09-06',$prices);
echo getPriceOfDay('2014-09-07',$prices);
echo getPriceOfDay('2014-09-08',$prices);
echo getPriceOfDay('2014-09-09',$prices);
echo getPriceOfDay('2014-09-10',$prices);
echo getPriceOfDay('2014-09-11',$prices);
echo getPriceOfDay('2014-09-12',$prices);
echo getPriceOfDay('2014-09-13',$prices);
echo getPriceOfDay('2014-09-14',$prices);
echo getPriceOfDay('2014-09-15',$prices);
echo getPriceOfDay('2014-09-16',$prices);
echo getPriceOfDay('2014-09-17',$prices);
echo getPriceOfDay('2014-09-18',$prices);
echo getPriceOfDay('2014-09-19',$prices);
echo getPriceOfDay('2014-09-20',$prices);
echo getPriceOfDay('2014-09-21',$prices);
echo getPriceOfDay('2014-09-22',$prices);
echo getPriceOfDay('2014-09-23',$prices);
echo getPriceOfDay('2014-09-24',$prices);
echo getPriceOfDay('2014-09-25',$prices);
echo getPriceOfDay('2014-09-26',$prices);
echo getPriceOfDay('2014-09-27',$prices);
echo getPriceOfDay('2014-09-28',$prices);
echo getPriceOfDay('2014-09-29',$prices);
echo getPriceOfDay('2014-09-30',$prices);

echo '<pre>';
print_r($prices);
$my_dates = array("2014-09-08", "2014-09-09", ...);

function getPriceOfDay($my_dates, $values) {

  $res = "";
  foreach($values as $value) {
    if(in_array($value['date'], $my_dates)) {
      $res .= "<p>Found: " .$value['date'] . ' for '. $value['price'] . "</p>";
    }
  }

  return $res;
}
getPriceOfDay($my_dates, $prices);