-2

我想问这种错误未定义偏移量是什么:4

我的代码是

$url = 'http://gogo.com, http://yoyo.com, http://gogo.com, http://yoyo.com, http://gogo.com, http://yoyo.com';
$key = 'key1, key2, key3';


$xurl = explode( "\n", $url );
$xkey = explode( "\n", $key );

$count = count( $xkey );
echo $count;
$i = 0;

while ( $i <= $count ) {
    if(empty($xkey[$i])){
        unset($xkey[$i]);
    }

    echo $xkey[$i];

$i++;   
}

回声是key1 key2 key3

但问题是我需要循环 xkey 等于我的 url 所以回显应该是但我只有 3keyword 我的意思是关键字小于 url。

我怎样才能使它像下面这样......

http://gogo.com - key1
http://yoyo.com - key2
http://gogo.com - key3
http://yoyo.com - key1
http://gogo.com - key2
http://yoyo.com - key3
4

3 回答 3

4

这意味着脚本正在寻找 的值$xkey[4],但该元素不存在。发生这种情况是因为像这样的数组键是从 0 开始的,所以第四个元素是$xkey[3]. 将您的 while 语句更改while ( $i < $count )为计数为 4,但最大键为 3。

于 2012-07-20T11:11:43.227 回答
1

你正在做的

while ( $i <= $count ) {

其中 $count 是 $xkey 中元素的数量(假设是 4 个元素)由于数组索引为 0,元素 $xkey[3] 是第 4 个也是最后一个元素。

$xkey[4] 会给你带来这个错误。

现在,删除其中的“=”,while ( $i <= $count ) {它应该会消失。

于 2012-07-20T11:12:26.473 回答
0

我不知道从哪里开始解释你的问题是什么,你有一个完全错误的方法。要获得您想要的结果,您需要执行以下操作:

$urlString = 'http://gogo.com, http://yoyo.com, http://gogo.com, http://yoyo.com, http://gogo.com, http://yoyo.com';
$keyString = 'key1, key2, key3';

$urls = explode(',', $urlString);
$keys = explode(',', $keyString);

$i = 0;
$count = count($keys);

foreach ($urls as $url) {
    echo $url, ' - ', $keys[$i % $count], PHP_EOL;
    $i++;
}
于 2012-07-20T11:15:38.950 回答