PHPのarray_reduceを使用して現在のアイテムのインデックスを取得する方法


方法1: array_reduceとキーの比較を使用する方法

$array = [10, 20, 30, 40, 50];
$currentItem = 30;
$index = array_reduce($array, function ($carry, $item) use ($currentItem) {
    if ($item === $currentItem) {
        return count($carry);
    }
    $carry[] = $item;
    return $carry;
}, []);
echo "現在のアイテムのインデックス: " . $index . "\n";

この方法では、array_reduce関数のコールバック関数内で、現在のアイテムとキーを比較します。一致する場合、carryの要素数が現在のアイテムのインデックスとなります。

方法2: foreachループとカウンタ変数を使用する方法

$array = [10, 20, 30, 40, 50];
$currentItem = 30;
$index = null;
$counter = 0;
foreach ($array as $key => $item) {
    if ($item === $currentItem) {
        $index = $counter;
        break;
    }
    $counter++;
}
echo "現在のアイテムのインデックス: " . $index . "\n";

この方法では、foreachループを使用して配列を順番に走査し、現在のアイテムと一致する場合にカウンタ変数をインデックスとして保存します。

以上の方法を使用すると、array_reduceを活用して現在のアイテムのインデックスを取得することができます。