for ($k = 0; $k < $count; $k++) {
$master[$k] = $namearray[$k], $streetarray[$k], $localityarray[$k], $regionarray[$k], $postalcodearray[$k], $phonearray[$k];
}
새 배열을 선언하고 이미 선언 된 다른 배열의 값을 설정하고 싶습니다. 나는 열쇠를 통해 반복하고 값을 설정할 수 있다고 생각했지만 이것은 나를 위해 작동하지 않습니다.PHP 배열 선언
전체 코드는 다음과 같습니다. 노란색 페이지 검색 결과를 파싱하고 검색 결과를 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);
?>
만들고 싶은 배열과 현재 가지고있는 배열의 예를 제공해주십시오. 우리가 당신이 원하는 것을 모르는 경우, 우리가 당신을 도울 수 없습니다. * "이미 선언 된 다른 배열의 값 설정"*은 구체적이지 않습니다. 최종 결과에 대한 정보를 전달하지 않습니다. –
'$ master [$ k] = 배열 ($ namearray [$ k], $ streetarray [$ k], ...);'? (누락 된'array()'선언에주의하십시오.) – DaveRandom
자, 전체 코드를 제공했으나 얻고 자하는 결과를 사용하지 않았다는 것을 알았습니다. '$ list'를 동적으로 만들고 싶습니까? –