【问题标题】:Change array to an array of object php [closed]将数组更改为对象php的数组[关闭]
【发布时间】:2021-12-02 23:36:57
【问题描述】:

我有这个数组:

array(3) {
  ["MANTRI KUPEDES"]=>
  int(11)
  ["JUNIOR STAFF 1"]=>
  int(10)
  ["PETUGAS ADM.KREDIT JUNIOR"]=>
  int(10)
}

我想改成这样:

array(3) {
  [0]=>
  object(stdClass)#26 (2) {
    ["jabatan"]=>
    string(33) "MANTRI KUPEDES"
    ["total"]=>
    int(11)
  }
  [1]=>
  object(stdClass)#27 (2) {
    ["jabatan"]=>
    string(33) "JUNIOR STAFF 1"
    ["total"]=>
    int(10)
  }
  [2]=>
  object(stdClass)#28 (2) {
    ["jabatan"]=>
    string(30) "PETUGAS ADM.KREDIT JUNIOR"
    ["total"]=>
    int(10)
  }
}

我试过了:

$jabatans['jabatan'] = array_keys($counts);
$jabatans['jumlah'] = array_values($counts);

但还是没有得到我想要的。有任何想法吗?我想使用 CodeIgniter 3.0 将它呈现给 CanvasJs。

【问题讨论】:

  • 你试过了吗?
  • 是的,我试过了
  • $jabatans['jabatan'] = array_keys($counts); $jabatans['jumlah'] = array_values($counts);但还是没有得到我想要的
  • 当然你没有,因为所做的只是获取一个数组中的键,以及另一个数组中的值。将其称为“尝试”确实是一个笑话。

标签: php arrays object


【解决方案1】:

使用键和值构建一个数组并将其转换为一个对象:

foreach($array as $key => $val) {
    $result[] = (object)['jabatan' => $key, 'total' => $val];
}

【讨论】:

    【解决方案2】:

    我认为您可以执行 foreach 循环将旧数组分配给新的对象数组

    $array = array(
      "MANTRI KUPEDES"=>11,
      "JUNIOR STAFF 1"=> 10,
      "PETUGAS ADM.KREDIT JUNIOR"=>10,
    );
    $newArray = array();
    foreach ($array as $key => $val) {
      $obj = new stdClass();
      $obj->jabatan = $key;
      $obj->total = $val;
      array_push($newArray, $obj);
    }
    

    来源:https://www.php.net/manual/en/control-structures.foreach.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 2021-07-02
      • 1970-01-01
      相关资源
      最近更新 更多