PHP从数组

时间:2016-08-17 13:02:57

标签: php arrays object laravel-5.2

我知道如何从数组中删除某些东西,但在这种情况下它有点不同。我的代码似乎在名为“* items”的数组中生成了这个烦人的项目,我不知道如何删除它。

我需要删除它,因为我的应用程序直观地显示了数组中的所有数据,现在由于这个项目只有一个空格。

我的代码

基本上在我的代码中,我已经将对象转换为像这样的数组

$accounts = Account::where('archive', false)->select('id', 'display_name')->get();

$accounts = (array) $accounts;

我100%肯定它与此有关。有没有办法从数组中删除“* items”项?

我试过

array_pop($array); 

这对我来说不起作用,它只删除了“* item”之前的最后一项

unset($array['*item']);

这也没有用,它根本没有取消任何内容。

图片

note the *items element being passed

编辑

我正在处理其他人的代码,并且有很多随机功能和特性,编写和解释整个脚本需要花费大量时间,所以我 尝试 以包含我认为必要的内容。

2 个答案:

答案 0 :(得分:0)

使用(array)投射对象可能会产生一种奇怪的行为。您可以尝试toArray

$accounts = Account::where('archive', false)
    ->select('id', 'display_name')
    ->get()
    ->toArray();

然后您可以使用dd检查结果:

dd($accounts);

答案 1 :(得分:0)

在发布之后,我立即找到了答案。

而不是使用以下代码专长......

$accounts = Account::where('archive', false)->select('id', 'display_name')->get();
$accounts = (array) $accounts;

我用过

foreach($account in $accounts){
    $test = new \stdClass();
    $test = (array) $test;
    $test[$index]['Revenue']      = (double) $account->revenue;
    $test[$index]['Expense']      = (double) $account->expense;
    $test[$index]['Profit']       = $account->sum;
    $test[$index]['ID']           = $id;
    $test[$index]['Account Name'] = $display_name;
}

这仍然令人困惑,但是因为香港专业教育学院尝试制作一个新的数组,然后通过它添加值,但它不会工作..?

修改  我完全理解这是一种非常低效的做事方式,但即时通讯工作截止日期,这是有效的,如果你有什么需要补充请做!我有时间审查批评,希望我可以在你的帮助下改进代码!