我知道如何从数组中删除某些东西,但在这种情况下它有点不同。我的代码似乎在名为“* items”的数组中生成了这个烦人的项目,我不知道如何删除它。
我需要删除它,因为我的应用程序直观地显示了数组中的所有数据,现在由于这个项目只有一个空格。
我的代码
基本上在我的代码中,我已经将对象转换为像这样的数组
$accounts = Account::where('archive', false)->select('id', 'display_name')->get();
$accounts = (array) $accounts;
我100%肯定它与此有关。有没有办法从数组中删除“* items”项?
我试过
array_pop($array);
这对我来说不起作用,它只删除了“* item”之前的最后一项
unset($array['*item']);
这也没有用,它根本没有取消任何内容。
图片
编辑
我正在处理其他人的代码,并且有很多随机功能和特性,编写和解释整个脚本需要花费大量时间,所以我 尝试 以包含我认为必要的内容。
答案 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;
}
这仍然令人困惑,但是因为香港专业教育学院尝试制作一个新的数组,然后通过它添加值,但它不会工作..?
修改强> 我完全理解这是一种非常低效的做事方式,但即时通讯工作截止日期,这是有效的,如果你有什么需要补充请做!我有时间审查批评,希望我可以在你的帮助下改进代码!