PHP数组声明

use*_*928 0 php arrays loops

for ($k = 0; $k < $count; $k++) {
    $master[$k] = $namearray[$k], $streetarray[$k], $localityarray[$k], $regionarray[$k], $postalcodearray[$k], $phonearray[$k];
}
Run Code Online (Sandbox Code Playgroud)

我想声明一个新数组并从已声明的其他数组中设置值.我以为我可以循环键并设置值,但这对我不起作用.

完整代码如下.我正在解析黄页搜索结果并尝试将搜索结果输出到csv文件中.在下面的代码中,我删除了循环,只向数组添加了一些值,以确保我的错误不是别的.

<?php

            // include required functions
            include('simple_html_dom.php');

            $url = "http://www.yellowpages.com/" . $_POST['city'] . '-' . $_POST['state'] . '-' . $_POST['postalcode'] . '/' . $_POST['category'] . '?g=' . $_POST['city'] . '%2C+' . $_POST['state'] . '+' . $_POST['postalcode'] . '&q=' . $_POST['category'];

            // get DOM from URL
            $html = file_get_html($url);


            // find all business name
            foreach($html->find('h3.business-name') as $name)
                //echo $name->innertext . '<br />';
                $namearray[] = $name->innertext;

            // find all business street address
            foreach($html->find('span.street-address') as $street) 
                //echo $street->innertext . '<br />';
                $streetarray[] = $street->innertext;

            // find all business city
            foreach($html->find('span.locality') as $locality)
                //echo $locality->innertext . '<br />';
                $localityarray[] = $locality->innertext;            

            // find all business state
            foreach($html->find('span.region') as $region)
                //echo $region->innertext . '<br />';
                $regionarray[] = $region->innertext;            

            // find all business postal code
            foreach($html->find('span.postal-code') as $postalcode)
                //echo $postalcode->innertext . '<br />';
                $postalcodearray[] = $postalcode->innertext;                

            // find all business phone
            foreach($html->find('span.business-phone') as $phone)
                //echo $phone->innertext . '<br />';
                $phonearray[] = $phone->innertext;

        ?>
        <p>Search results for: <?php echo $_POST['category'] . ' ' . $_POST['city'] . ' ' . $_POST['state'] . ' ' . $_POST['postalcode'];  ?></p>
        <?php
            // Output results
            $count = count($namearray);
            for ($i = 0; $i < $count; $i++) {
                echo $namearray[$i] . '<br />';
                echo $streetarray[$i] . '<br />';
                echo $localityarray[$i] . ',' . $regionarray[$i] . ' ' . $postalcodearray[$i] . '<br />';
                echo $phonearray[$i] . '<br />' . '<br />';
            }


        $list = array (
            array($namearray[0], $streetarray[0], $localityarray[0], $regionarray[0], $postalcodearray[0], $phonearray[0]),
            array($namearray[1], $streetarray[1], $localityarray[1], $regionarray[1], $postalcodearray[1], $phonearray[1]),
            array($namearray[2], $streetarray[2], $localityarray[2], $regionarray[2], $postalcodearray[2], $phonearray[2]),
            array($namearray[3], $streetarray[3], $localityarray[3], $regionarray[3], $postalcodearray[3], $phonearray[3])
        );

        $fp = fopen('hrpsearch.csv', 'w');

        foreach ($list as $fields) {
            fputcsv($fp, $fields);
        }

        fclose($fp);

        ?>
Run Code Online (Sandbox Code Playgroud)

Dan*_* Li 6

尝试:

$master = array();
for ($k = 0; $k < $count; $k++) {
    $master[$k] = array
        ( $namearray[$k]
        , $streetarray[$k]
        , $localityarray[$k]
        , $regionarray[$k]
        , $postalcodearray[$k]
        , $phonearray[$k]
        );
}
Run Code Online (Sandbox Code Playgroud)

这将为您创建一个新的二维数组,并为每个子数组创建关联键.