1

以下代码返回一个关联数组,如下所示

Array ( [1] => Array ( 
   [url] => example.com
   [title] => Title.example
   [snippet] => snippet.example 
) )

$blekkoArray = array();                     

    foreach ($js->RESULT as $item)
    {   
        $blekkoArray[$i]['url'] = str_replace ($find, '', ($item->{'Url'}) );         
        $blekkoArray[$i]['title'] = ($item->{'url_title'});
        $blekkoArray[$i]['snippet'] = ($item->{'snippet'});
        $i++;
    }

    print_r ($blekkoArray);

如何修改数组,以便1,2,3由 url 标识而不是由 etc 标识的数组元素,例如。

Array ( [example.com] => Array ( 
   [title] => Title.example
   [snippet] => snippet.example 
) )
4

6 回答 6

1

你也可以试试这个(单线解决方案)

$newArray = array( $old[0]['url'] => array_splice($old[0], 1) );

演示。

于 2013-07-20T16:13:41.147 回答
0

其他解决方案似乎专注于更改数组之后

foreach ($js->RESULT as $item)
    {   
        $blekkoArray[str_replace ($find, '', ($item->{'Url'}))] = array(         
        'title'=> $item->{'url_title'},
        'snip pet' => $item->{'snippet'}
         );

    }

那应该使数组成为您需要的样子

于 2013-07-20T18:14:07.023 回答
0
foreach ($arr as $key => $value){
    $out[$value['url']] = array_slice($value, 1);
}
于 2013-07-20T17:51:01.340 回答
0

考虑您的示例如下。其中 $js 是您要修改的数组。

$js = array( 
    1 => array ( 'url' => 'example.com', 'title' => 'Title.example','snippet' => 'snippet.example'), 
    2 => array ( 'url' => 'example2.com', 'title' => 'Title.example2','snippet' => 'snippet.example2'),
    3 => array ( 'url' => 'example3.com', 'title' => 'Title.example3','snippet' => 'snippet.example3'));

$blekkoArray = array();   

// The lines below should do the trick
foreach($js as $rows) { // main loop begins here
    foreach($rows as $key => $values) { // access what's inside in every $row by looping it again
        if ($key != 'url') {
             $blekkoArray[$rows['url']][$key] = $values; // Assign them
        }        
    }
}

print_r ($blekkoArray);

$js 数组中有多少元素并不重要,因为它每次只会重复该过程。

于 2013-07-20T16:49:56.587 回答
0
foreach ($js->RESULT as $item)
    {   
        $url = str_replace ($find, '', ($item->{'Url'}) );
        $blekkoArray[$url] = array("title"=>($item->{'url_title'}), "snippet"=>($item->{'snipped'}));     
    }
于 2013-07-20T15:59:29.393 回答
0

很简单,只需使用 url 而不是 $i

foreach ($js->RESULT as $item)
{   
    $url = str_replace ($find, '', ($item->{'Url'}) )
    $blekkoArray[$url]['title'] = ($item->{'url_title'});
    $blekkoArray[$url]['snippet'] = ($item->{'snippet'});
    $i++;
}
于 2013-07-20T15:59:13.093 回答