1

この質問は、基本的にここでのSoulieBabyの質問に似ています。特定の長さを含むように結果を分割したかったことを除いて、MYSQLの結果を4つの配列に分割します。

たとえば、長さが9の配列を分割し、分割された配列に5つの長さを含める結果が必要だったとします。したがって、最初の配列は5になり、2番目の配列は4になります。

これは可能ですか?

助けてくれてありがとう!

4

2 に答える 2

1

参照された質問は常に4つのチャンクが必要だったため、解決策はサイズのチャンクを作成することでしたceil(count($array) / 5)

この場合は簡単で、(最大)サイズは一定ですが、チャンクの数は異なります。

したがって、答えは単純です。

array_chunk($array, 5);
于 2012-11-14T06:56:43.183 に答える
0

試す:

DELIMITER $$
CREATE PROCEDURE split (in data varchar(500),in cad char(1))
BEGIN
    declare pos int default 0;
    declare numero int default 0;
    declare van int default 0;
    declare a varchar(500) default '';
    drop TEMPORARY table IF EXISTS tmp_split;
    create TEMPORARY table tmp_split(dato varchar(500)) ENGINE=MEMORY; 

    set pos=LOCATE(cad,data);
    while pos<>0 do
        set numero=numero+1;
        set pos=LOCATE(cad,data,pos+1);
    end while;
    set a=SUBSTRING_INDEX(data,cad,1);
    while numero>van do        
        set data=SUBSTRING(data,LENGTH(a)+2);
        insert into tmp_split values (a);
        set a=SUBSTRING_INDEX(data,cad,1);
        set van=van+1;
    end while;
    insert into tmp_split values (a);
    select * from tmp_split;
END

call split('1,2,5,52,64,365,9714,253,6697,8,9,2,62',',');

于 2012-11-15T18:25:55.100 に答える