﻿ PHP: Find a single element in an array where every element appears three times except for one - w3resource

# PHP Challenges: Find a single element in an array where every element appears three times except for one

## PHP Challenges - 1: Exercise-10 with Solution

Write a PHP program to find a single element in an array where every element appears three times except for one.

Input : array(5, 3, 4, 3, 5, 5, 3)

Explanation :

Sample Solution :

PHP Code :

``````<?php
function single_number(\$arr)
{
\$ones = 0;
\$twos = 0;
\$common_one_two = 0;
for(\$i=0; \$i<sizeof(\$arr); \$i++)
{
\$twos  = \$twos | (\$ones & \$arr[\$i]);

\$ones  = \$ones ^ \$arr[\$i];
\$common_one_two = ~(\$ones & \$twos);
\$ones &= \$common_one_two;
\$twos &= \$common_one_two;
}
return \$ones;
}
\$arr1 = array(5, 3, 4, 3, 5, 5, 3);
\$arr2 = array(-1, 1, 1, -1, -1, 1, 0);
print_r(\$arr1);
print_r('Single Number: '.single_number(\$arr1)."\n");
print_r(\$arr2);
print_r('Single Number: '.single_number(\$arr2)."\n");
?>
```
```

Sample Output:

```Array
(
[0] => 5
[1] => 3
[2] => 4
[3] => 3
[4] => 5
[5] => 5
[6] => 3
)
Single Number: 4
Array
(
[0] => -1
[1] => 1
[2] => 1
[3] => -1
[4] => -1
[5] => 1
[6] => 0
)
Single Number: 0
```

Flowchart:

PHP Code Editor:

```<?php
function single_number(\$arr)
{
\$ones = 0;
\$twos = 0;
\$common_one_two = 0;
for(\$i=0; \$i<sizeof(\$arr); \$i++)
{
\$twos  = \$twos | (\$ones & \$arr[\$i]);

\$ones  = \$ones ^ \$arr[\$i];
\$common_one_two = ~(\$ones & \$twos);
\$ones &= \$common_one_two;
\$twos &= \$common_one_two;
}
return \$ones;
}
\$arr1 = array(5, 3, 4, 3, 5, 5, 3);
\$arr2 = array(-1, 1, 1, -1, -1, 1, 0);
print_r(\$arr1);
print_r('Single Number: '.single_number(\$arr1)."\n");
print_r(\$arr2);
print_r('Single Number: '.single_number(\$arr2)."\n");
?>
```

Improve this sample solution and post your code through Disqus