0

page1.php

$destinationCity = $_POST['destination'];
$sr = new searchArray();
$final = $sr->searcharray($destinationCity);
echo "<pre>";
print_r($final);
echo $final->vc[0];
echo "</pre>";

Page2.php

class searchArray {

public function searcharray($arr) {
   $rst = array();
   $length = strlen($arr);
    if ($length == 2){
        $sql = "select code from ukhotels where postcode LIKE '$arr%'";
        $rsd = mysql_query($sql);
        while($rs = mysql_fetch_array($rsd)){
        $co = $rs['code'];
        $vc = &$rst['vc'];
        $vi = &$rst['vi'];

        $vc[] = substr($co, 0, 2);
        $vi[] = substr($co, 3, strlen($co));

    }

    }

page1 では、1 つの引数で関数を呼び出しています。page2 では、結果を関連配列に保持しています。

page1 から配列を印刷すると、出力が次のように表示されます

Array
(
[vc] => Array
    (
        [0] => CB
        [1] => RD
        [2] => RT
        [3] => YX
    )

[vi] => Array
    (
        [0] => 01461 
        [1] => 95101 
        [2] => 30818 
        [3] => 77126 
    )

)

このようにpage1で配列を使いたかった

for($i=0, $j=1;$i<=20;$i++)
{
$params["VendorLocation"]["VendorCode"] = "{$final->vc[$i]}";
$params["VendorLocation"]["VendorLocationID"] = "{$final->vi[$i]}";
$params["VendorLocation"]["Key"] = "{$j}";
$j++;
}    

しかし、「通知:非オブジェクトのプロパティを取得しようとしています」というエラーが表示されます

この問題を解決する方法を教えてください。

よろしくヘイリー

4

1 に答える 1

0

$final は配列です。次のように値にアクセスします。

for($i=0, $j=1; $i<=20; $i++) {
    $params["VendorLocation"]["VendorCode"] = '{' . $final['vc'][$i] . '}';
    $params["VendorLocation"]["VendorLocationID"] = '{' . $final['vi'][$i] . '}';
    $params["VendorLocation"]["Key"] = "{$j}";
    $j++;
}    
于 2012-09-21T12:07:44.160 に答える