2016-08-17 124 views
1

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

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

我的代码

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

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

$accounts = (array) $accounts; 

我100%肯定它做到这一点。有没有办法从数组中删除“* items”项?

我已经试过

array_pop($array); 

这并没有为我工作之前,“*项目”只是删除了最后一个项目

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

这也没有工作,它根本没有解决任何问题。

图片

note the *items element being passed

编辑

我正在别人的位置代码,并有大量的随机特性和功能,写作和解释整个脚本会花费很少的时间,所以我尝试包括我认为必要的内容。

+2

我会建议解决不掩盖症状的问题 – RiggsFolly

+1

图片来自您的JavaScript控制台?你如何将PHP数组转换为json? – Bert

+0

这种看起来像json格式化数据,其中'* items'的值是一个数组。如果您未设置/删除,那么这些值也会消失 – RamRaider

回答

0

(array)投射你的物体在这里可能有奇怪的行为。您可以尝试toArray

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

然后,你可以用dd检查结果:

dd($accounts); 
+0

啊,我看到..这将是正确的答案,然后唯一的问题是即时通讯使用它需要作为一个对象之前的帐户。我没有写这个代码,只是试图改变它,但是这是更容易与一个数组工作,而不是使它成为一个对象我仍然困惑,为什么以前的开发人员经历了这么多麻烦 –

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; 
} 

这仍然是混乱而是因为香港专业教育学院试图使一个新的数组,然后通过添加值,但它wouldnt工作..?

编辑 我完全理解,这是在做的事情,但有期限的工作IM的高度ineffecient方式,这是工作,如果你有什么要补充的,请做!虐待审查批评当我有时间,并希望我可以提高你的帮助代码!