我想问一下这种错误是什么样的未定义偏移: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 所以回声应该是,但我只有3关键字,我的意思是关键字小于网址。
我怎样才能在下面做到这样......
http://gogo.com - key1
http://yoyo.com - key2
http://gogo.com - key3
http://yoyo.com - key1
http://gogo.com - key2
http://yoyo.com - key3
答案 0 :(得分:4)
这意味着脚本正在寻找$xkey[4]
的值,但该元素不存在。发生这种情况是因为像这样的数组键是从0开始的,所以第四个元素将是$xkey[3]
。将您的while语句更改为while ( $i < $count )
,因为count为4,但最大键为3。
答案 1 :(得分:1)
你正在做
while ( $i <= $count ) {
其中$ count是$ xkey中的元素数(假设有4个元素) 由于数组是0索引的,元素$ xkey [3]是第4个和最后一个元素。
$ xkey [4]会给你带来错误。
现在,在此while ( $i <= $count ) {
中删除“=”,它就会消失。
答案 2 :(得分: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++;
}