【问题标题】:PHP Compare array CodeIgniterPHP 比较数组 CodeIgniter
【发布时间】:2016-12-20 14:30:38
【问题描述】:

我有两张桌子,分别是Request_Book和Gudang

Table Request_Book

title       | orderQuantity
Harry putra | 12
Guardion    | 3

餐桌鼓荡

title        | Quantity
Harry putra  | 4
Ben 7        | 2

我有几个条件:

  • gudang的数量必须大于orderQuantity
  • Request_Book的书名必须小于或等于古当书名

在我的控制器中,我的代码如下:

$cekBookRequest = $this->db->select("title, orderQuantity")
                           ->get('request_book')->result_array();

$cekGudang = $this->db->select("title, quantity")
                      ->get('stock_summary_warehouse')->result_array();

$result = $this->cek_values($cekBookRequest, $cekGudang);
var_dump($result);

这是我的比较数组:

function cek_values($arrayA, $arrayB) {
   sort($arrayA);
   sort($arrayB);
   return $arrayA == $arrayB;
}

我的比较数组只检查两个表中的标题是否相同。我的期望是 如果 Request_Book 有

title       | orderQuantity
Harry putra | 2
Ben 7       | 2

这将返回 true 或仅在 Request_Book

title       | orderQuantity
Harry putra | 2

也返回 true

在上面的第一个表中将返回 false,因为 Gudang 中的 title Guardion 不存在并且 Harry putra 数量为 12。如何在 cek_values 函数上检查和比较数组中的标题和数量?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    老实说,我不明白你想要的条件...... 不过,我认为你应该修改你的数组。由于您只有两条信息,因此您应该使用 key => value。我的意思是:

    1. foreach 修改数组:

      foreach ($arrayA as $row) {
       $book[row['title']] = row['OrderQuantity'];
      }
      foreach ($arrayB as $row2) {
       $gudang[row2['title']] = row2['Quantity'];
      }
      
    2. 然后使用PHP函数 您有几个函数可以对键和值进行排序:http://php.net/manual/en/array.sorting.php

    3. 您可以通过PHP函数进行比较。

    使用 foreach 或 array_diff() 来比较数组,它会有所帮助。告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多