ウェブデザイナーの日記

php :: 2配列を合体 :: 連続する文字列の○番目にキャプションを入れる関数

2007.08.13 09:08

php :: 2配列を合体 :: 連続する文字列の○番目にキャプションを入れる関数

php :: 2配列を合体 :: 連続する文字列の○番目にキャプションを入れる関数

こんな配列があったとして↓





$array = array(

 "string 1",
 "string 2",
 "string 3",
 "string 4",
 "string 5"

);

1行づつが<tr>〜</tr>であったり、<div>〜</div>であったりする場合が多いかと思うのですが、そのところどころに見出し的な文字列を挿入したいときありますね。都合上、配列の数が変わったりしつつ、常に『上から○番目に』キャプションを入れたい、みたいな。こんなかんじの配列と合わせたいの↓

$caption = array(

 0 => "caption 1",
 3 => "caption 2"

);

これのkeyの0(ゼロ)は人間的にいうところの「1行目にコレを入れて!」を意味し、3は人間的にいうところの「4行目にコレを入れて!」を意味します。余談ですが、日常生活においてゼロから順番を数えるようになったら、それはかなり壊れてるといえるので、半年くらいコンピュータから離れたほうがいいですよw。

んで、キャプションの話ですが、(広告を入れるとかで)『常に決まった行数おきに入れていく』なんていうのならまたぜんぜんちがうとおもうのですが、今回のテーマは『上から○番目にコレ、×番目にアレを挿入せよ』という話です。キャプションがついてる行ごとにグループわけして多次元配列にするのがいちばんわかりやすいなとおもうんですが、都合上、元データがそうなってないときもあったりして。あるいは、それらはグループわけしづらい内容だったりして、ページに表示する度にゴロゴロ変わるんだが、常に「『何番目』は固定されている」みたいなケース。とにかく、上に挙げた2つの配列をササッと合体させたいワケです!とにかくね、それだけやってくれればパチンコ行こうが外で浮気しようが構いませんからとにかくコレだけお願いします!そうじゃないと実家に帰らせて頂きます!っていう心境なんです。こういうときの処理はいろんなやり方があると思いますが、不肖、私、こんなのでやってます↓

上に挙げた2つの配列を渡すとコミコミ合体後の配列を返します。こんなかんじに配列を渡すと↓

$array = put_caption2array($array, $caption);

こんなふうになります↓

[出力結果]

Array
(
    [0] => caption 1
    [0x] => string 1
    [1x] => string 2
    [2x] => string 3
    [3] => caption 2
    [3x] => string 4
    [4x] => string 5
)

ほかにもこんなやりかたがあるよ〜てのがあったらおしえてちょうだいネ。

,

ウェブデザイナーの日記 [コメント (0) :: トラックバック (0) ]

このエントリーのトラックバックURL:
http://blog.3ot.net/ping/947